2011-02-14 8 views
0

플러그인이있는 이미지에 그림자를 추가하고 같은 사이트에서 라이트 박스를 사용하고 있습니다. 이것은 워드 프레스 플러그인 내가 편집있어의 기능입니다 :PHP 정규 표현식 도움말

function filter($content) { 
return preg_replace_callback('#<img.+?src\s*=\s*["|\'](.+?)["|\'].+?>#isu', array($this, 'filter_callback'), $content); 
} 

그리고 그것이 무엇을 모든 이미지에 필터를 추가하고 필터는 그림자를 추가합니다. 그러나 모든 이미지에 필터를 추가하는 것은 바람직하지 않습니다. 왜냐하면 그렇게되면, 어떻게 든 라이트 박스를 조이기 때문입니다. 그래서 필터를 사용하기 위해 특정 div 또는 페이지에있는 경우에만이 행을 편집하여 위와 같은 내용을 확인하십시오. 또는 특정 div 또는 페이지에 있으면 다른 방법으로 필터링하지 않을 수도 있습니다.

이 정규 표현식을 어떻게 편집 할 수 있는지에 대한 일종의 자습서를 제공해 드리겠습니다.

+2

XML 파서를 사용하여 실제로 살펴보아야합니다. –

+2

그래, 정말로 SimpleXML 같은 것을 사용해라. –

+4

re : 이미지에 그림자를 추가하십시오. CSS에서이 작업을 수행 할 수 있다는 것을 알고 있습니까? – Spudley

답변

1

, 그것은 할 수는 없습니다 정규식 이유는 유연성을 피하면서

  • 유연한 길이 lookbehinds는 PHP
  • 하고 허용되지 않습니다
      는 당신이 설명하는대로 length lookbehind는 콜백 함수에 전송 된 값을 변경합니다.
  • +0

    이것은 내가 찾고있는 대답이었다. 하지만 해결책은 아닙니다 :) 이제 다른 사람들의 답변을 확인하여 문제를 해결할 것입니다. – Weptile

    6

    어디서나 작동하지 않지만 CSS3 만 사용하면 어떨까요? box-shadow?

    +1

    어쩌면 * everywhere *가 아니지만, 요즘 일반적으로 사용되는 모든 브라우저에서 작동합니다. 심지어 [CSS3Pie] (http : //www.css3pie)를 사용하면 IE6/7/8조차도 'box-shadow'를 수행 할 수 있습니다. co.kr /). – Spudley

    +0

    글쎄, 나는 다른 사람으로부터 질문에 대한 나의 대답을 얻었지만 해결책은 이것이었다. 모두에게 감사드립니다. 나는 CSS3에 대해 어떻게 생각하지 않았는지 믿을 수 없다 ... – Weptile

    +0

    글쎄, 그건 좀 다른 답장에 대한 응답을받은 이유는 무엇입니까? – CAFxX

    5

    라이트 박스를 사용하는 경우 이는 사이트의 자바 스크립트에 의존한다는 의미입니다.

    jQuery로 (매우 유용한) 점프를하고 jQuery (매우 유용한) 선택자를 사용하여이 작업을 수행하는 것이 좋습니다. 대신 정규식 - 보내고 이상한 위치에, 그냥이 정확하게 질문에 대한 답변 아니라는 것을 알고

    $('.lightbox-photo').addClass('filter')

    같은 일을 할,하지만 난 그게 더 다양한 솔루션 생각합니다. 당신이 너무 콜백 기능을 변경하지 않는 한 당신이 설명으로

    +0

    시도한 것은 플러그인으로 작동하지 않았습니다. 필터는 내가 추가하는 스크립트보다 먼저 작동합니다. 어떻게 그리고 왜,이 시점에서 너무 지저분하지 않은지 물어 보지 마십시오. D 이것만으로도 해결할 가치는 없습니다. 나는 CSS3를 시도 할 것이다 ... – Weptile