私はページ内の画像名をpreg_replaceを使って置き換えようとしていますが、正規表現で何かが見つからないことがあります。PHP preg_replace画像の名前
例のために、私は次のページ使用します:だからここ https://www.laurentwillen.be/circuits/circuit-autriche/alpbach/
を私は何をすべきかです:
$media = get_attached_media('image', $metadata["page_id"]);
foreach ($media as $key=>$value)
{
$old_image = explode("/",$media[$key]->guid);
$old_image = $old_image[sizeof($old_image)-1];
$old_image = explode(".",$old_image);
$old_image = "/".$old_image[0]."/";
$new_image = wp_get_attachment_image_src($key,'tablet');
$new_image = explode ("/",$new_image[0]);
$new_image = $new_image[sizeof($new_image)-1];
$new_image = explode (".",$new_image);
$new_image = "/".$new_image[0]."/";
preg_replace($old_image,$new_image,$content,-1,$count);
}
あなたに変数の値を推測する手間を惜しまするには、
$ old_image値:
/alpbach-photo-1/
/alpbach-photo-2/
/alpbach-photo-3/
/alpbach-photo-4/
/alpbach-photo-5/
/alpbach-photo-6/
/alpbach-photo-top/
ここで何$ old_imageと高い特定のページのために表すnew_image $です
$のnew_image値:
alpbach-photo-1-900x600
alpbach-photo-2-900x600
alpbach-photo-3-900x600
alpbach-photo-4-900x600
alpbach-photo-5-900x600
alpbach-photo-6-900x600
alpbach-photo-top-900x281
にpreg_replaceのカウントは
9
0
9
0
9
0
0
を返ししかし、最終的には、何も交換されていません。
は私が手動でしようとした場合:
preg_replace("/alpbach-photo-3/","/alpbach-photo-1/",$content,-1,$count);
何もどちらかに置き換えされていません。
私は間違っていますか?何か案が?
ありがとうございます! php manualとして
おかげしかし対象が配列ではない、それはページ全体を含む文字列です。結果を変数に格納すると、変数は変更なしでコンテンツを出力します。サンプルページをチェックして、ソースコード内でDEBUGを探すと、何も置き換えられていない$ contentの出力が見えます。 – Laurent