define Проблем?

macmen

Registered
здравейте имам следния проблем:
имам поле в БД което има съдържание bg
дефинирам го така define( "bg", "Български");
но накрая не ми го изкарва като резултат "Български".
може ли някой да ми обясни защо.

Благодаря предварително!
 
С define дефинираш константи, които се използват в кода. Ето ти пример:
Код:
define('bg', 'Български');
define('en', 'Английски');
echo bg;
echo en;
Парсера намира константите в кода ти и ги замества с техните стойности.
Ти искаш в текст взет от поле в база данни автоматично да замести bg с Български. Това няма как да стане, защото bg в случая се третира като обикновен низ, а не като константа. Затова трябва да използваш подобен метод:
Код:
// $text съдържа текста взет от БД !
echo str_replace( 'bg', 'Български', $text );

// Ако искаш да заместиш множество стрингове, използвай масиви като параметри за str_replace 
echo str_replace( array( 'en', 'bg', 'ru' ), array('Английски', 'Български', 'Руски'), $text );

На вторият метод има по-удачен и по-прегледен начин за използване:
Код:
$repl = array( 'en' => 'Английски', 'bg' => 'Български', 'ru' => 'Руски' );
echo str_replace( array_keys($repl), $repl, $text );
:)
 

Back
Горе