2012-02-23 18 views
0

文字列から通貨記号を削除しようとしましたが、「未定義の変数」エラーが発生しました。申し訳ありませんが、これは完全にばかだと、私は初心者です!preg_replace未定義の変数エラー

<? if ($event->ticket_cost) : ?> 
    <? $cost = $event->ticket_cost ?> 
    <? $cost = preg_replace("€£$","", $cost) ?> 
    <?=$cost ?> 
    <? else : ?> 
    <? echo '' ?> 
<? endif ?> 

ありがとう!

+0

投稿全体 –

+0

詳細については、 –

答えて

3

あなたはdelimittersを使用する必要があります。

また
preg_replace("#€£\$#","", $cost) ?> 

$は正規表現で特殊文字であるため、あなたは上記のようにバックスラッシュでエスケープする必要があります。

また、<?を使用している場合は、他の特殊な設定やものを使用していない限り、<?=以上、<?phpである必要があります。

0
preg_replace("/[€£$]/","", $cost) ?> 

注:一つのフィールドでの価格と通貨を格納すると良いアイデアではありません

1

あなたは間違って三つのことがあります。

  • は(:"~€£$~"ので、それがあるべき)正規表現からdelimitersの欠落を
  • $はPHPの可変統計名です(二重引用符でも評価されます)ので、\"~€£\$~"でエスケープするか、を使用してください"~€£\\\$~"か::(シングルQUOT)'~€£$~'
  • $がその行の最後の責任PCRE式のmeta characterは、正規表現は次のようになりますので、最終的にエスケープする必要があります'~€£\\$~'

そしてもう一つ、なぜ」勝ちましたあなたがより良い性能を持っている必要があり、それはあなたが何をしたいのかをより明確にするだろう(例えば、strtr()用)「ダム文字列置換」を使用しtは、例:

$test = "sum € sum 2 £ sum 3$"; 
$repl = array(
    '€' => '', 
    '£' => '', 
    '$' => ''); 
echo strtr($test, $repl) . "\n"; 

A FAIK str_replace()は、トラフ文字列を3回繰り返します(strtr())。

+0

+1の 'preg_replace()'にdilimiterがありません:) – Sarfraz