"_page.php"で終わる文字列のすべてのURLについて、&はそれらを変換してベース名と "_page" 「そう、この文字列を持つ例:preg_replaceを使用して文字列内のURLを変換する
$str = preg_replace('!(http)(s)?:\/\/[a-zA-Z0-9.?&_/]+_page.php!', '$0',$str);
:私はこれを書いた
<br/>A_page TEXT
<br/>B_page TEXT
<br/>C_page TEXT
<br/>http://www.website.com/folder/D_dont.php TEXT
:
<br/>http://www.website.com/folder/A_page.php TEXT
<br/>http://www.website.com/folder/B_page.php TEXT
<br/>http://www.website.com/folder/C_page.php TEXT
<br/>http://www.website.com/folder/D_dont.php TEXT
は、私は次のようにそれを見てみたいです
は適切な一致を得ますが、一致したURL全体を$ 0に置き換えているため、URLはまったく変更されません。これを行う:
$str = preg_replace('!(http)(s)?:\/\/[a-zA-Z0-9.?&_/]+_page.php!', '$1',$str);
が私を取得します:
http TEXT
http TEXT
http TEXT
http://www.website.com/folder/D_dont.php TEXT
だから、私は$ 1から$ 2に切り替えた場合、それは私が解析し、次のように返すことができURLの体を返します考え出し:
$str = preg_replace('!(http)(s)?:\/\/[a-zA-Z0-9.?&_/]+_page.php!', basename('$2','.php'),$str);
$ 2が空になります。どのように私はpreg_replaceのリンクの本文をキャプチャできますか?
'$ 2'は、それがどのような'(S)であるとして 'S'または空のいずれかである' 'captures.Use? !https?:// [a-zA-Z0-9.?&_/] * /([^ /] * _page)\ .php! 'そして' $ 1'で置き換えます。 –
'basename( '$ 2'、 '.php')'または任意の関数を置き換えるには 'preg_replace_callback()'が必要です。 – AbraCadaver