배열과 함께 preg_replace를 사용하여 bbcode를 탐색하고 뉴스 항목이 게시 될 때 변경하십시오. 나는 텍스트와 BBCode는 포함되어 있습니다 (이 예 $ newsPost에서) 데이터베이스에서 데이터를 가져 오는 경우 URL 값에 따라 bbcode를 변경하십시오.
$bbcode = array (
"/\[url\=(.*?)\](.*?)\[\/url\]/is" => "<a href='$1' target='_blank'>$2</a>"
);
예를
를 들어는 그럼, 나는이 작업을 수행.
$newsPost = preg_replace(array_keys($bbcode), array_values($bbcode), $newsPost);
지금, 내가 원하는 것은 $ 1 값이 내 도메인이 포함 된 경우, 대상이 "정상"이어야하며 그렇지 않은 경우는 비어 있어야 알 수있다.
그래서 우리는 [url=http://www.mydomain.com]visit our page[/url]
이 있다면. 그러면 <a href="http://www.mydomain.com" target="top">visit our page</a>
으로 변형되고 다른 것은 target="_blank"
이됩니다.
아이디어가 있으십니까?
미리 감사드립니다.
완벽하게 일했다! 고맙습니다. 두 번째 예제에 대해 약간 확신 할 수 없습니다. bbcode (20+)에 많은 항목이있는 경우 $ bbcode [] 스타일에 맞게 각 항목을 다시 작성해야합니다. – Andelas
@scatteredbomb 아니요, [array_merge()] (http://www.php.net/manual/en/function.array-merge.php)를 사용할 수 있습니다. 업데이트 된 답변 – DaveRandom
@scatteredbomb을 방금 다시 편집했습니다. '[url] http : //my.url/ [/ url]'구문뿐만 아니라'[url = http : //my.url/] some text [/ url] 구문을 사용하여 사람들을 설명해야한다는 것을 깨달았습니다. ' – DaveRandom