2012-04-26 3 views
0

저는 간단한 CMS를 개발 중이며 경우에 따라 데이터베이스에 단락을 저장하고 싶지만 데이터베이스에 html 코드를 저장하고 싶지는 않습니다 그것은 다음과 같습니다 :preg 대체 링크를 만들려면 대체하십시오

일부 텍스트, 일부 텍스트 || 키워드 || http : //an-external-site.com/keyword || 텍스트와 텍스트

다음과 같은 링크를 생성하기 위해 PHP를 사용

텍스트, 텍스트 < A HREF를 = "http://an-external-site.com/keyword"> 키워드 </a > 일부 텍스트 및 일부 텍스트

그럼, 어떻게 할 수 있습니까? 예를 들어 preg_replace이다()와

그리고는 미리 정의 된 변수를 사용하여 내 사이트 내 내부 페이지의 URL 지점이 할 수있는 방법은 예를

텍스트, 텍스트 || 키워드,이 || MS/키워드 || 텍스트와 텍스트는

이 될 것이다 :

텍스트, 텍스트 < A HREF = "http://mysite.com/keyword"> 키워드 </A > 텍스트와 텍스트

MS는

그래서 여기 PHP 함수 패턴을 얻고 단순히 예 1에서와 같이 전체 URL을 사용하거나 동일 미리 정의 된 변수로 MS를 대체 ​​할 것인지 여부를 결정하는 예를 http://mysite.com/ 내 사이트를 의미

http://mysite.com/

감사합니다.

답변

1

프로젝트에서 비 html 코드를 직접 가져 오려면 bbcode과 같은 클래스를 사용하는 것이 좋습니다. 당신은 여전히 ​​정규 표현식을 사용하려면

당신은 다음과 같이 사용할 수 있습니다 : 아이디어에 대한

$pattern = '=^(.*)<a(.*)href\="?(\S+)"([^>]*)>(.*)</a>(.*)$=msi'; 
while (preg_match($pattern, $row, $txt)) 
{ 
    /* $txt[3] holds the link. */ 
    echo $txt[3]."\n"; 

    $row = $txt[1]." here was a link ".$txt[6]; 
} 

/* print $row */ 
print "<br>".nl2br($row); 
+0

감사하지만, 함수가 발견해야 어디 단락에 사용되는 패턴을 언급하지 않았다으로 어떻게 작동합니다 |||||||| – medk

관련 문제