php
  • strip-tags
  • 2014-02-10 3 views 3 likes 
    3

    strip_tags를 사용하면 이미지에 링크 된 태그를 제거 할 수 있습니까? 예를 들어strip_tags - 스트립 <a>에서 태그 <img>

    는 내가 이미지를 유지하고 주위에 모든 태그를 제거해야

    <img src="" /> 
    

    <a href=""><img src="" /></a> 
    

    를 원한다. 내에서 그것을 내 <img> 태그가있는 경우이 링크에서 아무것도를 교체해야

    $string = '<a href=""><img src="" /></a>'; 
    $string = preg_replace('/(<a(?: [^>]+| |)>)(?:[^<]+|)<img(?: [^>]+| |)>(?:[^<]+|)(<\/a>)/','$1$2',$string); 
    

    : 나는 기대했다 Simple HTML Dom를 사용 외에 당신은 정규식을 사용할 수 있습니다

    +0

    입니다 : 대신 정규 표현식을 사용할 수 있습니다 simpleHTMLDom. – Wrikken

    +0

    내가 당신의 문제를 처리해야한다고 믿는이 스레드를 발견했다 : http://stackoverflow.com/questions/8684395/strip-outer-element-ie-remove-parent-with-php-parser – steinmas

    +0

    'strip_tags ($ str, '')'do? – Bugs

    답변

    1

    당신은 strip_tags를 사용 할 수 없습니다.

    $text = preg_replace("/<a[^>]+\>(<img[^>]+\>)<\/a>/i", '$1', $text); 
    

    이 방법은 예, 당신이 사용하는 경우 'DOM` ... 그것은 눈부시게 빠른 일반 될 것입니다 사용하는 빠르고 간단한 HTML보다 훨씬 쉽게 돔

    +1

    문제는 ''및'words '과 같은 텍스트가 잘못 대체된다는 것입니다. – Anonymous

    +0

    @ 익명 예, 당신 말이 맞아요. 하지만 그렇지 않으면 정규식이 커집니다. 그리고 당신이 논평 한 그런 상황은 드뭅니다. 그러나 어쨌든, 네, 나는 당신과 동의합니다. – Hast

    0

    이 그것을 할 할 수있는 쉬운 방법이 있었다 링크 사이에 다른 태그가없는 한 링크 선언. 당신은 단지 같은 상황에서 <img> 태그 부분을 바꾸려면

    , 당신은 사용할 수 있습니다

    $string = '<a href=""><img src="" /></a>'; 
    $string = preg_replace('/(<a(?: [^>]+| |)>)([^<]+|)<img(?: [^>]+| |)>([^<]+|)(<\/a>)/','$1$2$3$4',$string); 
    
    관련 문제