PHP字符串编码


PHP string encode

我有一些网站是用最古老的CodeIgniter版本在php5上编写的
我有配置:

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

在某些地方,我有两个字符串值。

  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

我需要如何编码/解码/比较才能工作?

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

您的{shortname}占位符不会被替换。我不使用CodeIgniter,但也许你喜欢使用{$shortname}?(插入$shortname变量值)

示例:

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