2013-06-07 1 views
2

앵커 태그에 대상 태그를 추가하여 preg_match 또는 preg_replace을 사용하여 새 창에서 열리는 방법은 무엇입니까?preg_match 또는 preg_replace를 사용하여 새 창에서 열 태그를 앵커 태그에 추가하는 방법

$contentss = file_get_contents("http://www.ncbi.nlm.nih.gov/pubmed?LinkName=pubmed_pubmed&from_uid=18032633"); 

preg_match('/<div class="rprt">(.*)<\/div>/',$contentss,$matches); 

$patterns = '/\/pubmed/'; 

$replacements = 'http://ncbi.nlm.nih.gov/pubmed'; 

$getreplacements = (preg_replace($patterns, $replacements, $matches)); 

echo $getreplacements[0]; 
+0

이 ** HTML을 구문 분석하는 정규 표현식을 사용하지 마십시오 사용할 수있는 대상을 교체하십시오. 정규식으로 HTML을 안정적으로 구문 분석 할 수는 없으며 슬픔과 좌절을 당할 것입니다. HTML이 예상과 다르게 변경되면 코드가 손상됩니다. 이미 작성, 테스트 및 디버깅 된 PHP 모듈을 사용하여 HTML을 올바르게 구문 분석하는 방법에 대한 예제는 http://htmlparsing.com/php를 참조하십시오. –

답변

0

레그 일치를위한 필요 없음/a를 대상 속성

if(preg_match('/<a.*?target=[^>]*?>/', $str)) 

를 가지고 이미있는 경우 당신은 preg_match를 함께 확인할 수 있습니다 str_replace()

str_replace('<a', '<a target="_blank" ', $str); 

사용을 대체하고 있다면, 무엇을 결정 이 태그를 바꾸려면 preg_replace 또는 str_replace를 사용하십시오. 이 태그가있는 경우 대체를하지 않을 수도 있습니다. 그것은 당신에게 달려 있습니다.

$str은 교체/검사 할 문자열입니다. 존재하는 경우

은 ** 당신이

preg_replace('/<a.*?target="([^"]?)"[^>]*?>/', 'blank', $str) 
+0

와우 멋지게 잘 .. 고마워요 ... –

+0

아니 str_replace 나를 위해 잘 작동 ... 다시 고마워 –

관련 문제