0

次のような文字列があります。

$str = "{gfgd}i:123;a:7:{gfgd}i:5;a:35:"; 

そして、私はそれを次のように置き換えたい:

$str = "{gfgd},{gfgd},"; 

ereg_replace を使用して、この種のフレーズを置き換えたい:

「i:[0-9]a:[0-9]:」を「,」記号に変換します。

やってみる:

     $str = "i:143;a:5:{gfgd}i:123;a:7:{gfgd}i:5;a:35:";  
     $text = ereg_replace("/^i:[0-9]+;a:[0-9]+:+$", ",", $str);

しかし、私は働きません。手伝って頂けますか?前もって感謝します

4

3 に答える 3

0
$str = "i:143;a:5:{gfgd}i:123;a:7{gfgd}i:5;a:35";  
$str = ereg_replace("\}[^\{]+\{", "},{", $str); // replace between } and { with },{
$str = ereg_replace("^[^\{]+", "", $str); // remove from first
$str = ereg_replace("[^\}]+$", ",", $str); // remove from last 
print $str;
于 2013-12-21T11:34:37.540 に答える
0

ereg_replaceとして使用しないでくださいThis function has been DEPRECATED as of PHP 5.3.0

代わりに使用preg_replaceすると、正規表現が間違っています。アンカーを削除^ and $

$text = preg_replace('/i:[0-9]+;a:[0-9]+:?/', ",", $str);
//=> ,{gfgd},{gfgd},

オンラインデモ: http://ideone.com/W2P55n

于 2013-12-21T11:36:03.573 に答える