Copy
$str = '<p><img src="/shop/lib/meditor/../../data/editor/1fdf6438e02eff9a"><br></p>';
위와 같이 <img> 태그안에 있는 src의 링크 부분만 출력을 하고 싶습니다.
형식은 대부분 비슷하나 img 태그는 $str 변수에 무조건 1개만 들어갑니다.
정규식으로 해당 안의 url을 가져오고 싶은데 참고할수있도록 알려주시면 감사하겠습니다.!
답변 4개
채택된 답변
+20 포인트
* for beginners. 참고로 추가합니다.
Copy
// 1. HTML 내용 중
$str = '<p><img sor="test" src="/shop/lib/meditor/../../data/editor/1fdf6438e02eff9a"><br></p>';
// 2. 필요한 부분
// <img src="/shop/lib/meditor/../../data/editor/1fdf6438e02eff9a">
// 3. 패턴 지정
// .*?는 간단하게 뒤쪽의 문자열 전까지의 문자열. *라서 없을 수 있음.
// [^"]는 "가 아닌 문자. + 붙어서 1글자 이상. src 부분만 따로 할당하기 위해 ()로 감싸기.
// <img.*?src="([^"]+)">
// 4. 실제 구하기 ... 찾으면 src 내용, 찾지 못하면 빈 문자열.
// 구분자 #로 지정했는데, 패턴에 사용되지 않는 문자로 하면 따로 Escape 처리하지 않아도 되어 편함.
// 예) /<div>.*?<\/div>/ → #<div>.*?</div>#
$img = preg_match('#<img.*?src="([^"]+)">#', $str, $match) ? $match[1] : '';
echo $img; // /shop/lib/meditor/../../data/editor/1fdf6438e02eff9a
답변을 작성하려면 로그인이 필요합니다.