PHP preg_replace图像名称

我想通过使用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); 

没有被替换无论是。

我在做什么错?任何想法?

谢谢!

回答:

php manual如说:

的preg_replace()返回如果受试者参数是 阵列的阵列,或者一个字符串否则。

如果找到匹配,新的主题将是返回,否则 主题是返回不变或NULL,如果发生错误。

因此,您需要将preg_replace的结果存储到某个变量中。

$result = preg_replace($old_image,$new_image,$content,-1,$count); 

以上是 PHP preg_replace图像名称 的全部内容, 来源链接: utcz.com/qa/257610.html

回到顶部