이미지 url주소값만 변경하기 질문드립니다. 채택완료
$aaa = '<img border="0" src="http://aaa.com/0.jpg" width="100" height="100">
<br><img border="0" src="http://aaa.com/1.jpg" width="100" height="100">
<br><img border="0" src="http://aaa.com/2.jpg" width="100" height="100">';
preg_match_all("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $aaa, $match);
// src 값만 추출하기
$imgurl = $match[1];
위와 같이 $aaa에서 이미지 주소값만 추출했을때
아래의 $bbb에 내용과 다른 태그는 그대로두고 이미지 주소값만 순서대로 바꾸려고 합니다.
어떻게 하면되는지 아시분 도와주시면 감사하겠습니다.
$bbb = '<img border="0" src="위에서 추출한 이미주소 첫번째" width="100" height="100">
<br>안녕하세요~
<br><br>날씨가 많이 춥네요
<br><img border="0" src="위에서 추출한 이미주소 두번째" width="100" height="100">
<br>감기조심하세요
<br><img border="0" src="위에서 추출한 이미주소 세번째" width="100" height="100">';
답변 2개
str_replace("위에서 추출한 이미주소 첫번째", $imgurl[0], $bbb);
str_replace("위에서 추출한 이미주소 두번째", $imgurl[1], $bbb);
str_replace("위에서 추출한 이미주소 세번째", $imgurl[2], $bbb);
답변에 대한 댓글 10개
[code]
for($i=0; preg_match("/<img border=\"0\" src=\"(.*)\"", "<img src=\"".$imgurl[$i]."\" border=\"0\"", $bbb), $i++);
[/code]
하나의 img태그가 여러번 검사되는 것을 막기 위해서 border와 src의 위치를 바꾸었습니다.
[code]
for($i=0; preg_match("/<img border=\"0\" src=\"(.*)\"/", "<img src=\"".$imgurl[$i]."\" border=\"0\"", $bbb), $i++);
[/code]
이걸로 해보세요. 계속 안되시면 어떤 에러가 나는지 첨부해주시기 바랍니다.
Parse error: syntax error, unexpected ')', expecting ';' in /home/zzang/public_html/imgur2.php on line 18
[code]
for($i=0; preg_match("/<img border=\"0\" src=\"(.*)\"/", "<img src=\"".$imgurl[$i]."\" border=\"0\"", $bbb); $i++);
[/code]
알려주신 코드는 에러 안납니다.
죄송하지만 한번만 더 봐주시면 안될까요?
$aaa = '<img border="0" src="http://aaa.com/0.jpg" width="100" height="100">
<br><img border="0" src="http://aaa.com/1.jpg" width="100" height="100">
<br><img border="0" src="http://aaa.com/2.jpg" width="100" height="100">';
preg_match_all("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $aaa, $match);
// src 값만 추출하기
$imgurl = $match[1];
$bbb = '<img border="0" src="위에서 추출한 이미주소 첫번째" width="100" height="100">
<br>안녕하세요~
<br><br>날씨가 많이 춥네요
<br><img border="0" src="위에서 추출한 이미주소 두번째" width="100" height="100">
<br>감기조심하세요
<br><img border="0" src="위에서 추출한 이미주소 세번째" width="100" height="100">';
for($i=0; preg_match("/<img border=\"0\" src=\"(.*)\"/", "<img src=\"".$imgurl[$i]."\" border=\"0\"", $bbb); $i++);
echo $bbb;
이렇게 하는게 아니간요? ㅠㅠ
[code]
for($i=0; $i<count($imgurl); $i++) {
$bbb = preg_replace("/<img border=\"0\" src=\"(.*)\" width/", "<img src=\"".$imgurl[$i]."\" border=\"0\" width", $bbb, 1);
}
[/code]
이렇게 수정해보세요. 테스트 결과 잘 작동합니다.
제가 원하던대로 완벽하게 되네요.
늦은밤 귀한 시간내주셔서 정말 감사합니다.
좋은밤 되세요^^
댓글을 작성하려면 로그인이 필요합니다.
예전 비슷한 경험이 있어서 만들어둔 jquey 입니다 참고하세요
우와.. 지금보니 소스 겁나 허접스럽네요 정말 참고만 하세요
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
이미지가 3개만 있는게 아니고 1개 일수도 있고 여러개 일수도 있거든요.
할때마다 이미지 수는 달라져요.
그리고 위에서 추출한 이미주소 첫번째 이 부분도 항상 값이 달라요
그러땐 어떻게 하면 될까요?