이미지 url주소값만 변경하기 > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

이미지 url주소값만 변경하기 정보

PHP 이미지 url주소값만 변경하기

본문

$search = '<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">';
 
$replace = '<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">';
 
class UrlChange {
    var $matches, $i = 0, $regex = '/(?<=src=")[^"]+/', $val = '';
    function __construct($search, $replace) {
        preg_match_all($this->regex, $search, $matches);
        $this->matches = $matches[0];
        $this->val = preg_replace_callback($this->regex, array($this, 'call'), $replace);
     }
    function call($m) { return $this->matches[$this->i++]; }
}
$a = new UrlChange($search, $replace);
echo $a->val;

 

https://sir.kr/qa/223379

댓글 전체

좋은정보 감사합니다.
new UrlChange($search, $replace);
요게 출력되는 코드 같은데 요거로 배열? 값 이거로 담으려면 어떻게 해야하는지요?
즉)
$aaa = "출력값";
이런식으로요
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<?
$list = array(
	array('1','img/000.jpg', 'img/000on.jpg', '100', '100'),
	array('2','img/001.jpg', 'img/001on.jpg', '100', '100'),
	array('3','img/002.jpg', 'img/002on.jpg', '100', '100')
);
?>

<?php foreach($list as $v){ ?>
	<img border="0" id="img_0<?=$v[0]?>" src="<?=$v[1]?>" width="<?=$v[3]?>" height="<?=$v[4]?>" data-img="<?=$v[2]?>">
<? } ?>
<script>
$(document).ready(function(){
	$("img").click(function(){
		var o = $(this).attr('id');
		var c = $("#"+o).attr('src');
		$("#"+o).attr('src', $(this).data("img"));
		$("#"+o).data("img",c);
	})
});
</script>


저두 코딩 드럽게 못하는데 대충 만들어봤습니다^^
클릭시 data-img 변경으로 전 이미지로 돌아가도록 구성했습니다.
<?php 
$list = array( 
    array('img/000.jpg', '100', '100'), 
    array('img/001.jpg', '100', '100'), 
    array('img/002.jpg', '100', '100') 
); 

foreach($list as $v) 
    printf('<img src="%s" width="%s" height="%s" >', $v[0], $v[1], $v[2]); 
?> 
<script> 
var img = document.getElementsByTagName('img');
for (var i=0; i<img.length; i++) { 
   (function(k){
        img[k].onclick = function() {
             this.src = this.src.indexOf('_on') + 1 ? this.src.replace('_on', '') : this.src.replace('.', '_on.'); 
        }    
    })(i);
}
</script>
<?php 
$list = array( 
    array('img/000.jpg', '100', '100'), 
    array('img/001.jpg', '100', '100'), 
    array('img/002.jpg', '100', '100') 
); 

foreach($list as $v) 
    printf('<img src="%s" width="%s" height="%s" >', $v[0], $v[1], $v[2]); 
?> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script> 
$( 'img' ).on( 'click', function() {
    this.src = this.src.indexOf('_on') + 1 ? this.src.replace('_on', '') : this.src.replace('.', '_on.'); 
});
</script>
전체 4,908
개발자팁 내용 검색

회원로그인

진행중 포인트경매

  1. EditPlus5 (에디트플러스5 1인용)

    참여24 회 시작18.04.22 18:39 종료18.04.27 18:27
  2. 일전에 말씀드린 자전거용품 몇개 찾아봤습니다..

    참여16 회 시작18.04.22 14:55 종료18.04.27 14:55

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT