문제
내가 무리의 문자열을 포함하는 각 앵커 태그와 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!"
제휴하지 않습니다 StackOverflow