$str=htmlspecialchars(”abcdefg$hi”);
とあります。
ereg_replaceを使って$だけ取り除きたいのですが
ereg_replace(”$”,””,$str);ではうまく動作しません。何かおかしいのでしょうか?
http://www.msn.co.jp/home.armx
MSN Japan
htmlはダミーです。
phpの場合、””で囲むと中の$は変数の$として認識するので、$hiという変数として認識し、展開するので$hiが宣言されていない場合ブランクに置換されます。よって、$は置換されません。
(’abcdefg$hi’);
としてみてはいかがでしょうか。
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k09.htm
PHP 基礎編9 - 正規表現、マッチ、置き換え、ereg、eregi、eregi_replace - SAK Streets
$がメタ文字なので
ereg_replace(”¥$”,””,$str)
でうまくいくのではないでしょうか?
http://www.hatena.ne.jp/1118125973#
人力検索はてな - PHPで $str=htmlspecialchars(”abcdefg$hi”); とあります。 ereg_replaceを使って$だけ取り除きたいのですが ereg_replace(”$”,””,$str);ではうまく動作しません。..
補足です
$str=htmlspecialchars(”abcdefg$hi”);
だと$hiが変数扱いされるので
$str=htmlspecialchars(’abcdefg$hi’);
にしてください。
http://www.hatena.ne.jp/1118125973
人力検索はてな - PHPで $str=htmlspecialchars(”abcdefg$hi”); とあります。 ereg_replaceを使って$だけ取り除きたいのですが ereg_replace(”$”,””,$str);ではうまく動作しません。..
ereg_replace の第1引数は正規表現です。正規表現で”$”は「文字列の最後」を表す、特別な文字です。”¥$” のようにエスケープして指定してはどうでしょうか?
PHP: Hypertext Preprocessor
やられたいことがいまいち見えていないのですが、ユーザーに入力された$マークを無効化したいということで良いのでしょうか?
例で言えば、「abcdefg$hi」とユーザーに入力された場合でしょうか?
$を取るということであれば、
hatenaのシステムにより、ダブルクォテーションや円マークが全角で表示されていると思いますが、適宜半角に読み替えてください。
<?php
$str=htmlspecialchars(”abcdefg¥$hi”);
print $str . ”
”;
print eregi_replace(”¥¥$”,””,$str);
?>
でいかがでしょうか?
コメント(0件)