2013-11-15 5 views
2

get_the_content()를 사용하여 Wordpress 게시물의 이미지를 파싱하려고합니다.PHP Wordpress Shortcode HTML에 포함 된 정규식

<ul> 
    <li>testing1</li> 
    <li>egfgf</li> 
</li> 
<p>Here!</p> 
[lightbox link="http://www.test.com/photo1.jpg" width="150" align="none" title="photo 1" frame="true" icon="image"] 
[lightbox link="http://www.test.com/photo2.jpg" width="150" align="none" title="photo 2" frame="true" icon="image"] 
[lightbox link="http://www.test.com/photo5.jpg" width="150" align="none" title="photo 5" frame="true" icon="image"] 

위 HTML처럼 항상하지 않고 모든 HTML 변형 될 수 있습니다

그것은 HTML과 여러 라이트 박스 단축 코드의 무리를 반환합니다. 제 질문은 정규 표현식 패턴을 사용하여 모든 라이트 박스 단축 코드의 링크 값을 얻는 방법입니다.

원하는 출력 : 내가 사용 해봤

Array 
(
[0] => Array 
    (
     [0] => http://www.test.com/photo1.jpg 
     [1] => http://www.test.com/photo2.jpg 
     [2] => http://www.test.com/photo5.jpg 
    ) 
) 

패턴 :

preg_match_all('/(?<![^"])\S+\.[^"]+/', $text, $matches); 
print_r($matches); 

이것은 단지 라이트 박스 텍스트에 작동하지만 HTML을 추가 할 때이 작업을 나던.

왜 내 정규식은이 사이트에서 작동합니까? http://regex101.com/r/eE6fU9하지만 PHP에서는 작동하지 않습니다.

답변

1

는 다음과 같은

preg_match_all('/\[lightbox[^\]]*link="([^"]*)"[^\]]*\]/i', $text, $matches); 
print_r($matches[1]); 

내가 배열에서 값을 받고 힘든 시간을 보내고 있었다 demo

+0

를 참조 할 수 있습니다. 귀하의 정규 표현식은 100 % 작동합니다. 감사! – user2997491