2011-03-31 4 views
0

나는이어떻게 두 개의 정규식을 결합하고 결과를 변수로 저장할 수 있습니까?

preg_match_all('!http://.+\.(?:jpe?g|png|gif)!Ui' , $content , $matches); 

모든 이미지를 얻을이가 "나쁜 단어"내가 그들을 결합하고 대신에 결과를 저장할 수있는 방법

'/(list|of|bad|words)/i' 

이 있다면 내가 모든 이미지를 차단하는 방법입니다 print_r 대신 변수에? 내 목적은 모든 이미지를 컨텐츠에서 삭제하고 "깨끗한"컨텐츠를 생성하는 것입니다.

감사합니다.

+0

? 과? 또는? 아마도? –

+0

@Andrea Spadaccini 나는 그들과 함께하고 싶다. (나는 생각한다.) 내 목적은 모든 이미지에서 콘텐츠를 삭제하는 것입니다. 내 질문을 업데이트했습니다. – EnexoOnoma

답변

0

$content 포맷 방식에 따라 일부 조정이 필요할 수 있습니다 :

<?php 
    $content = 'http://www.example.com/images/image001.jpg 
       http://www.example.com/images/image002.jpeg 
       http://www.example.com/images/list001.jpg 
       http://www.example.com/images/image003.png 
       http://www.example.com/images/bad002.png 
       http://www.example.com/images/image004.gif 
       http://www.example.com/images/words003.jpg'; 

    preg_match_all('!http://.+\.(?:jpe?g|png|gif)!Ui', $content, $matches); 

    preg_match_all('/\S+(list|of|bad|words)\S+/i', $content, $bads); 

    $filtered = array_values(array_diff($matches[0], $bads[0])); 

    print_r($filtered); 
?> 

출력 : 당신이 그들을 결합하려는 어떻게

Array 
(
    [0] => http://www.example.com/images/image001.jpg 
    [1] => http://www.example.com/images/image002.jpeg 
    [2] => http://www.example.com/images/image003.png 
    [3] => http://www.example.com/images/image004.gif 
) 
+0

감사합니다 jnpcl! 제발 여기 내 문제 좀 봐 http://stackoverflow.com/questions/5508151/a-specific-problem-with-my-script-that-includes-php-dom- andregular-expressions – EnexoOnoma

2

아마 가장 빠른 방법은 첫 번째 정규식을 실행 한 다음 나중에 나쁜 정규식을 필터링하는 것입니다. 콜백을 사용하면 쉽게 할 수 있습니다. 하지만 나는 정규식을 결합하려고하지 않을 것이다.

+0

고맙습니다. "깨끗한"컨텐츠를 값으로 저장하고 새 컨텐츠를 표시하려면 어떻게합니까? – EnexoOnoma

관련 문제