0

私は次のコードを持っています

$path = $resource['path'];
if (strpos($path, base_url()) == 0) {
    $path = FCPATH. substr($path, strlen(base_url()));
}
echo '<pre>';
$x = '/home/gofrendi/public_html/No-CMS/themes/ubuntu/assets/default/script.js';
var_dump($path);
var_dump($x==$path);
var_dump('/home/gofrendi/public_html/No-CMS/themes/ubuntu/assets/default/script.js' == $path);
echo '</pre>';

$path が構成されていると確信しています/home/gofrendi/public_html/No-CMS/themes/ubuntu/assets/default/script.js

そして、これは私が得るものです:

string(82) "/home/gofrendi/public_html/No-CMS/themes/ubuntu/assets/default/script.js"
bool(false)
bool(false)

比較は単に失敗したようです。ここで何が問題なのですか?PHP のバグか、私のミスか?

編集: このコードの結果も喜んでお見せします:

echo '<pre>';
$x = '/home/gofrendi/public_html/No-CMS/themes/ubuntu/assets/default/script.js';
var_dump($path);
var_dump($x);
var_dump($x==$x);
var_dump($x==$path);
var_dump('/home/gofrendi/public_html/No-CMS/themes/ubuntu/assets/default/script.js' == $path);
echo '</pre>';

結果は次のとおりです。

string(82) "/home/gofrendi/public_html/No-CMS/themes/ubuntu/assets/default/script.js"
string(72) "/home/gofrendi/public_html/No-CMS/themes/ubuntu/assets/default/script.js"
bool(true)
bool(false)
bool(false)

もう一度編集:{{ used_theme }}解決しました。現在使用されているテーマ に変更するシステムをテンプレート化するために、いくつかの str_replace を実行します。使用されているテーマは 'ubuntu' で、長さは 6 文字ですが、{{ used_theme }} は長さが 10 文字です。コードの実行後に str_replace が実行されました。これにより、var_dump の結果も変更され、予期しない動作が発生します。みんなの助けに感謝します。

4

3 に答える 3

0

$path には string(82) 文字が表示され、$x には string(72) があるため、いくつかの html 文字の問題である必要があるため、いくつかの違いがあります。トリミングして比べてみてください。

于 2013-04-18T07:25:59.163 に答える
0

stringsご覧のとおり、そのうちの 2 つにはいくつかの違いがありlength "82"other is of "72" 文字列には見えない (印刷されない) 文字が含まれている可能性があります。

于 2013-04-18T07:27:45.260 に答える