2016-05-17 2 views
0

У меня есть сайт, написанный на php5 с использованием самой древней версии CodeIgniter.
У меня конфиг:PHP string encode

$config['charset'] = 'windows-1251'; 

В каком-то месте, у меня есть 2 значения строки.

  1. $this->uri->segment(2)
  2. "{shortname}" . ".html"

Я хочу, чтобы сравнить их и сделать что-то, если они равны.
Но я попадаю в ад ...

Теперь у меня есть некоторый код в какой-то точки зрения:

<?=(strcmp($this->uri->segment(2), "{shortname}" . ".html") == 0) ? 
     'test' : 
     'notest' ?><br/> 
<?=mb_detect_encoding($this->uri->segment(2))?><br/> 
<?=mb_detect_encoding("{shortname}" . ".html")?><br/> 
<?=base64_encode(mb_convert_encoding($this->uri->segment(2), 'UTF-8'))?><br/> 
<?=base64_encode(mb_convert_encoding("{shortname}" . ".html", 'UTF-8'))?><br/> 
<?=$this->uri->segment(2)?><br/> 
<?="{shortname}" . ".html"?><br/> 

Как результат у меня есть:

notest 
ASCII 
ASCII 
cml6b2dyYWZpamEtdGlyYXpoaXJvdmFuaWUuaHRtbA== 
e3Nob3J0bmFtZX0uaHRtbA== 
rizografija-tirazhirovanie.html 
rizografija-tirazhirovanie.html 

Как мне нужно кодировать/декодировать/сравнить, он будет работать?

ответ

3

base64_decode("e3Nob3J0bmFtZX0uaHRtbA==") = {shortname}.html

Ваш {shortname} заполнитель не заменяется. Я не использую CodeIgniter, но, возможно, вам нравится использовать {$shortname}? (Вставляет значение переменной $shortname)

Пример:

echo strcmp($this->uri->segment(2), "$shortname.html") == 0) ? 'test' : 'notest'; 
+0

Да! Это причина. Он заменяется, только если я использую его напрямую: . Но если я передам его в качестве аргумента, он не заменит ... Я поставил условие в контроллер. Большое спасибо! –