문제

내가 무리의 문자열을 포함하는 각 앵커 태그와 url.

문자열 ex.

here is a link <a href="http://www.google.com">http://www.google.com</a>. enjoy!

내가 원하는 구문 분석하 앵커 태그 그리고 그 사이의 모든 것을.

결과 ex.

here is a link. enjoy!

url 에서 href=부분이 항상 일치하지 않는 링크를 텍스트 그러나(때로는 url 을 단축,때로는 설명하는 텍스트).

나는 데 매우 어려운 시간을 파악하여 이 작업을 수행하는 방법 중 하나는 정규 표현식 또는 php 기능입니다.할 수 있는 방법을 분석하는 전체 앵커 태그/에서 연결 문자열?

감사합니다!

도움이 되었습니까?

해결책

를 사용해서는 안 됩 regex 분석 html 사용 html 파서 대신 합니다.

하지만 경우에 당신은 사용해야 하는 regex,당신의 앵커 태그 내부의 내용이 보장됩니다 무료로 다음과 같이 html </a>,그리고 각각의 문자열을 포함하도록 보장 하나만 태그는 앵커로 예제의 경우,다만 다음 같은 것을 사용할 수 있습니다:

대체 /^(.+)<a.+<\/a>(.+)$/$1$2

다른 팁

보고의 결과를 들어,그것은 것 같아 너만을 제거하 태그/내용-당신을 유지하려는 당신이 무엇을 제거하거나요?하지 않으면 당신이 찾고 있을 수 있습니다 strip_tags().

이후 문제는 것은 매우 특정,나는 생각이 그것을 해야 하:

$str = preg_replace('#\s?<a.*/a>#', '', $str);

사용상 PHP 문자열 기능이 있다.

$str='here is a link <a href="http://www.google.com">http://www.google.com</a>. enjoy!';
$s = explode("</a>",$str);
foreach($s as $a=>$b){
    if( strpos( $b ,"href")!==FALSE ){
        $m=strpos("$b","<a");
        echo substr($b,0,$m);
    }
}   
print end($s);

출력

$ php test.php
here is a link . enjoy!
$string = 'here is a link <a href="http://www.google.com">http://www.google.com</a>. enjoy!';
$text = strip_tags($string);
echo $text; //Outputs "here is a link . enjoy!"
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top