메뉴에서 링크를 제거하는 기능을 개선하고 싶습니다.PHP 정규식 : 메뉴에서 링크를 클릭 할 수 없습니다. 링크를 제거하고 앵커를 유지하십시오
$n=extract(
preg_replace(
array(
'/<li><a class="selected" href="post_'.$page.'.html">(.+)<\/a><\/li>/i',
'/<li class="nolink">(.+)<\/li>/i',
),
array(
'',
'<li class="nolink">\\1</li>',
),
compact('topmenu','menu','add','counters')
),
EXTR_OVERWRITE);
이 코드는 작동하지만 메뉴에서 다른 유형의 링크를 제거하고 싶습니다. 모든 클래스 = "선택"나는 페이지에서 링크를 제거하지만 앵커를 유지 정규식을 작성하려고합니다. 그래서 정규 표현식 <a class="selected" href="'.$page.'.html"([^>]+)>([^<]+)<\/a>
이 작동하지 않습니다. .html "전과 후의 사물의 매칭에 문제가있는 것 같습니다.
링크는 제목을 포함하고 있습니다. rel 태그를 .html 뒤에 붙일 수 있습니다. 그래서 일반적인 링크 : <a class="selected" href="connect.html" title="Email" rel="nofollow">Email</a>
희망 당신은 나보다 PHP 정규식으로 잘 지내고 있습니다.
$link = '<a class="selected" href="connect.html" title="Email" rel="nofollow">Email</a>';
echo preg_replace('/(:?href=\")(.+?)(:?\")/', '$1$3', $link);
출력됩니다 : 당신은 단지 링크 자체를 제거 할 경우
왜 http://uk3.php.net/domdocument 및 http://uk3.php.net/domxpath가 좋지 않습니까? – CD001
안녕하세요, cd001. 나는 일하는 해결책이 이미 단지이 것을 impove하기 위해 정규 표현식을 필요로한다. – Stem