0
我想通過使用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和$ new_image代表給予更高的頁面:
$ old_image值:
/alpbach-photo-1/
/alpbach-photo-2/
/alpbach-photo-3/
/alpbach-photo-4/
/alpbach-photo-5/
/alpbach-photo-6/
/alpbach-photo-top/
$ 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);
沒有被替換無論是。
我在做什麼錯?任何想法?
謝謝!
謝謝,但對象不是一個數組,它包含整個頁面的字符串。如果我將結果存儲在變量中,則變量輸出內容時不變。您可以在示例頁面上的源代碼中查找DEBUG,您將看到$ content的輸出,其中沒有任何內容被替換。 – Laurent