スマイリーを解析するために書いている一部のphpで一重引用符/アポストロフィに問題があります。
一重引用符は私の人生の悩みの種ですが、ここに行きます。
まず、ここにいくつかのコードがあります...
まず、スマイリーとそのスマイリーのファイル名を保持する配列。
これは別のファイルです (smiley-map.php)。
<?php
$smilies = array (
array('code' => ':)', 'filename' => 'smiley.gif'),
array('code' => ':(', 'filename' => 'sad.gif'),
array('code' => ';)', 'filename' => 'wink.gif'),
array('code' => ':D', 'filename' => 'grin.gif'),
array('code' => ';D', 'filename' => 'cheesy.gif'),
array('code' => '>:-(', 'filename' => 'angry.gif'),
array('code' => ':O', 'filename' => 'shocked.gif'),
array('code' => '8)', 'filename' => 'cool.gif'),
array('code' => '???', 'filename' => 'huh.gif'),
array('code' => '::-)', 'filename' => 'rolleyes.gif'),
array('code' => ':P', 'filename' => 'tongue.gif'),
array('code' => ':-[', 'filename' => 'embarrassed.gif'),
array('code' => ':*', 'filename' => 'lipsrsealed.gif'),
array('code' => ':-/', 'filename' => 'undecided.gif'),
array('code' => ':x', 'filename' => 'kiss.gif'),
array('code' => ':\'(', 'filename' => 'cry.gif'),
array('code' => '>:-D', 'filename' => 'evil.gif'),
array('code' => '^-^', 'filename' => 'azn.gif'),
array('code' => 'O0', 'filename' => 'afro.gif'),
array('code' => 'LOL', 'filename' => '2funny.gif'),
array('code' => ':bash:', 'filename' => 'knuppel2.gif'),
array('code' => '>_<', 'filename' => 'tickedoff.gif'),
array('code' => ':?', 'filename' => 'idiot.gif'),
array('code' => ':!', 'filename' => 'uglystupid.gif'),
);
?>
次に、次のような簡単な方法でそれらを解析します。
<?php
function parseSmilies($string)
{
require_once("smilies/smiley-map.php");
for ($i = 0; $i < count($smilies); $i++)
{
$filename = '<img src="smilies/' . $smilies[$i]['filename'] . '" alt="smiley" title="' . $smilies[$i]['code'] . '" />';
$string = str_replace($smilies[$i]['code'], $filename, $string);
}
return $string;
}
?>
つまり、スマイルマップを含める...アレイが利用可能になりました...コードの検索文字列...画像タグのコードを交換します。
これはすべて、ローカル マシン (XAMPP) で正常に動作します。しかし、サーバーにアップロードして実行すると、泣き声が見逃されます:'(
配列でエスケープしたにもかかわらず、これは問題を引き起こす単一引用符であると思います..
おそらく、これに影響を与えているPHP設定がいくつかありますか?
誰でもアドバイスしてもらえますか?
どうもありがとう。
編集: $string は $_POST から発生します