이미지 url주소값만 변경하기 질문드립니다. 채택완료
$aaa = 'http://aaa.com/0.jpg" target="_blank">http://aaa.com/0.jpg" width="100" height="100">
http://aaa.com/1.jpg" target="_blank">http://aaa.com/1.jpg" width="100" height="100">
http://aaa.com/2.jpg" target="_blank">http://aaa.com/2.jpg" width="100" height="100">';
preg_match_all("/]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $aaa, $match);
// src 값만 추출하기 $imgurl = $match[1];
위와 같이 $aaa에서 이미지 주소값만 추출했을때
아래의 $bbb에 내용과 다른 태그는 그대로두고 이미지 주소값만 순서대로 바꾸려고 합니다.
어떻게 하면되는지 아시분 도와주시면 감사하겠습니다.
$bbb = '
안녕하세요~
날씨가 많이 춥네요
감기조심하세요
';
답변 2개
</p>
<p>str_replace("위에서 추출한 이미주소 첫번째", $imgurl[0], $bbb);</p>
<p>str_replace("위에서 추출한 이미주소 두번째", $imgurl[1], $bbb);</p>
<p>str_replace("위에서 추출한 이미주소 세번째", $imgurl[2], $bbb);</p>
<p>
답변에 대한 댓글 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]
이렇게 수정해보세요. 테스트 결과 잘 작동합니다.
제가 원하던대로 완벽하게 되네요.
늦은밤 귀한 시간내주셔서 정말 감사합니다.
좋은밤 되세요^^
댓글을 작성하려면 로그인이 필요합니다.
http://rido.tistory.com/entry/jquery-%ED%8A%B9%EC%A0%95%EB%8F%84%EB%A9%94%EC%9D%B8%EC%9D%98-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EB%A7%81%ED%81%AC%EB%A5%BC-%EB%B3%80%EA%B2%BD?category=411630" target="_blank">http://rido.tistory.com/entry/jquery-%ED%8A%B9%EC%A0%95%EB%8F%84%EB%A9%94%EC%9D%B8%EC%9D%98-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EB%A7%81%ED%81%AC%EB%A5%BC-%EB%B3%80%EA%B2%BD?category=411630
예전 비슷한 경험이 있어서 만들어둔 jquey 입니다 참고하세요
우와.. 지금보니 소스 겁나 허접스럽네요 정말 참고만 하세요
답변에 대한 댓글 1개
제가 워낙에 초보라 알려주신것도 쉽진 않을듯요^^
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
이미지가 3개만 있는게 아니고 1개 일수도 있고 여러개 일수도 있거든요.
할때마다 이미지 수는 달라져요.
그리고 위에서 추출한 이미주소 첫번째 이 부분도 항상 값이 달라요
그러땐 어떻게 하면 될까요?