<? php
$Src = 'images/pages/clients/logos/clnt_aljareera_img.jpg';
$pttn= '/&Src:'.$Src.'/';
$string=preg_replace($pttn,'',$string,1);
?>
//出力エラー:不明な修飾子'p' in
文字列には、正規表現の区切り文字として使用する場合/
と同様に、その混乱全体をエスケープする必要があります。正規表現の区切り文字としてではなく、たとえば、文字列で発生しないものを使用します。ただし、に表示されないことが保証されている区切り文字を選択する必要があります。を使用した場合よりも安全な場合があります。\/
/
/
~
$Src
|
~
$Src = 'images/pages/clients/logos/clnt_aljareera_img.jpg';
// Delimit the regular expression with ~
$pttn= '~&Src:'.$Src.'~';
$string=preg_replace($pttn,'',$string,1);
何が起こったのかというと、それが終了区切り文字に到達したと考えているため、直後/
のエンカウンターによって区切られた正規表現です。次の単語は、誤って正規表現修飾子の文字列として扱われます。p
images/
pages
PHPは正規表現を認識します。
/&src:images/pages
開始php-tagのスペースを削除します。