테스트 사이트 - 개발 중인 베타 버전입니다

특정 문자 바꾸기 정규식 질문... 채택완료

언젠간 6년 전 조회 3,437

$문자열값 =

<img src="http://abc1.com/an123sg/aaa.png" >

<img src="http://abc2.com/ansasg/bbb.jpg" >

<a href="http://aaa.com"><img src="http://abc3.com/aasdfang/ccc.gif" ></a>

 

결과는

$문자열값 =

<img src="https://abc1.com/an123sg/aaa.png" >

<img src="https://abc2.com/ansasg/bbb.jpg" >

<a href="http://aaa.com"><img src="https://abc3.com/aasdfang/ccc.gif" ></a>

 

이렇게 나오고 싶습니다.

 

 

</p>

<p>preg_replace('/<img(.*)(^http:$)(.*).+(png|jpeg|jpg|gif|webp)/g', 'https:', $문자열값);</p>

<p>

이렇게 짜봤지만.. 이리저리 하다 어렵네요..

 

<img 안에 있는 http:(특정 문자) 보이면 https:(바꾸려는 문자) 바꾸려고 하려면 어떻게 해야 되나요?

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
6년 전

다음을 참조해 보시죠.

$data = '<img src="http://abc1.com/an123sg/aaa.png" >

<img src="http://abc2.com/ansasg/bbb.jpg" >

<a href="http://aaa.com"><img src="http://abc3.com/aasdfang/ccc.gif" ></a>';

$pattern = "#src=\"http(:\/\/.+\/.+\.\w{3})\"#isU";
$replace = "src=\"https$1\"";

$data = preg_replace($pattern, $replace, $data);

echo htmlspecialchars($data);

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

언젠간
6년 전
답변해주셔서 감사합니다.

확장자가 4자리(jpeg,webp)면 w{3,4} 이렇게 바꾸면 되는군요.

댓글을 작성하려면 로그인이 필요합니다.

6년 전

https:// http:// 에 상관없이 하려면 http:를 뺸 //만 하셔도 됩니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

언젠간
6년 전
답변해주셔서 감사합니다.

보안 때문에 http 에서 https 로 바꾸려고 합니다.

댓글을 작성하려면 로그인이 필요합니다.

L
6년 전
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

언젠간
6년 전
답변해주셔서 감사합니다.

아.. 문자열값은 3개 다 포함입니다.

<img src="http://.......png">
<img src="http://.......jpg">
<img src="http://.......gif">
<img src="http://......."> // 확장자 없는 경우 제외

보이면 <img 안에 http: 라면 https: 한꺼번 바꾸려고 합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인