PHPで

$str=htmlspecialchars(”abcdefg$hi”);
とあります。
ereg_replaceを使って$だけ取り除きたいのですが
ereg_replace(”$”,””,$str);ではうまく動作しません。何かおかしいのでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答6件)

id:tailliar No.1

回答回数109ベストアンサー獲得回数0

ポイント100pt

htmlはダミーです。

phpの場合、””で囲むと中の$は変数の$として認識するので、$hiという変数として認識し、展開するので$hiが宣言されていない場合ブランクに置換されます。よって、$は置換されません。

(’abcdefg$hi’);

としてみてはいかがでしょうか。

id:PaulYamamoto No.2

回答回数113ベストアンサー獲得回数2

ポイント100pt

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k09.htm

PHP 基礎編9 - 正規表現、マッチ、置き換え、ereg、eregi、eregi_replace - SAK Streets

$がメタ文字なので

ereg_replace(”¥$”,””,$str)

でうまくいくのではないでしょうか?

id:heroin No.3

回答回数5ベストアンサー獲得回数0

ポイント100pt

URLはダミーです。

ereg_replace(’¥$’,””,$str);

ではどうでしょうか?

id:PaulYamamoto No.4

回答回数113ベストアンサー獲得回数2

ポイント100pt

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’);

にしてください。

id:obache No.5

回答回数31ベストアンサー獲得回数0

ポイント100pt

http://www.hatena.ne.jp/1118125973

人力検索はてな - PHPで $str=htmlspecialchars(”abcdefg$hi”); とあります。 ereg_replaceを使って$だけ取り除きたいのですが ereg_replace(”$”,””,$str);ではうまく動作しません。..

ereg_replace の第1引数は正規表現です。正規表現で”$”は「文字列の最後」を表す、特別な文字です。”¥$” のようにエスケープして指定してはどうでしょうか?

id:english No.6

回答回数304ベストアンサー獲得回数0

ポイント100pt

http://www.php.net/

PHP: Hypertext Preprocessor

やられたいことがいまいち見えていないのですが、ユーザーに入力された$マークを無効化したいということで良いのでしょうか?


例で言えば、「abcdefg$hi」とユーザーに入力された場合でしょうか?


$を取るということであれば、

hatenaのシステムにより、ダブルクォテーションや円マークが全角で表示されていると思いますが、適宜半角に読み替えてください。


<?php

$str=htmlspecialchars(”abcdefg¥$hi”);

print $str . ”

”;

print eregi_replace(”¥¥$”,””,$str);

?>

でいかがでしょうか?

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません