preg_replace를 사용하여 페이지 내의 이미지 이름을 바꾸려고하는데 정규식과 관련하여 누락 된 부분이 있습니다. ,PHP preg_replace 이미지 이름
$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);
}
는 당신에게 변수 값을 추측하는 수고를 아끼지하기 : 그래서 여기 https://www.laurentwillen.be/circuits/circuit-autriche/alpbach/
내가 할 것입니다 : 예를 위해서
, 나는 다음과 같은 페이지를 사용합니다$ old_image 값 :
/alpbach-photo-1/
/alpbach-photo-2/
/alpbach-photo-3/
/alpbach-photo-4/
/alpbach-photo-5/
/alpbach-photo-6/
/alpbach-photo-top/
012,351,641 여기서 뭐 $ old_image 높은 주어진 페이지에 대한 표현 new_image $입니다
$의 new_image 값 : preg_replace이다에 대한
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
카운트가
9
0
9
0
9
0
0
를 반환하지만 결국, 아무 것도 대체하지 않습니다.
나는 수동으로 시도하는 경우 :
preg_replace("/alpbach-photo-3/","/alpbach-photo-1/",$content,-1,$count);
것도이 중 하나를 대체하지 않습니다.
내가 뭘 잘못하고 있니? 어떤 생각?
감사합니다. php manual으로
감사하지만 대상은 전체 페이지를 포함하는 문자열의 배열이 아닙니다. 결과를 변수에 저장하면 변수는 변경없이 내용을 출력합니다. 예제 페이지에서 소스 코드에서 DEBUG을 찾으면 아무것도 교체되지 않은 $ content의 출력을 볼 수 있습니다. – Laurent