2010-07-02 10 views
1

단어와 문장을 둘러싼 uderscores를 텍스트 덩어리에서 PHP로 기울임 꼴 태그로 변환하는 방법은 무엇입니까? 미리 감사드립니다. 그래서주위 밑줄을 태그로 변환

-

This is _just_ a test string for the _purposes of this example_. 

이 될 것입니다 -

단지이 예의 목적을위한 테스트 문자열입니다
This is <i>just</i> a test string for the <i>purposes of this example</i>. 

답변

1

기본적으로 정규 표현식을 사용합니다. 밑줄이 다른 곳에 나타날 경우 예기치 않은 영향을 줄 수 있습니다 (예 : 기존 HTML 태그 및 URL 그렇다면 \ b와 함께 실험해야합니다.

preg_replace('/_(\w[^<>\n]+?\w)_/', '<i>$1</i>', $text); 

또는 필요한 경우 미리 준비된 위키 파서를 사용하십시오.

+0

감사 마리오와 도마뱀, 그들은 모두 잘 작동하지만 나는이 하나의 부족을 좋아한다. 규칙적인 표현을 배우기 좋은 곳을 추천 해 줄 수 있습니까? – usertest

+0

@ user201140 : 내가 가장 좋아하는 리소스는 http://www.regular-expressions.info/javascriptexample.html입니다. Perl과 PHP regex meta thingys에 대한 광범위한 개관을 가지고 있으며, 종종 PHP 매뉴얼이나 Perl man 페이지보다 더 이해하기 쉽습니다. 해당 지역의 퀘스트에 대한 첫 번째 Google 결과입니다. 어쨌든, 정규식 테스트 도구를 사용해보십시오. 데스크톱 정규 표현식 빌더/테스터까지도 더 많이 존재합니다. – mario

2
$content = "This is _just_ a test string for the _purposes of this example_."; 

preg_match_all("|_(.*)_|U",$content,$rows); 

foreach($rows[0] as $key=>$row) { 
    $content = str_replace($row, "<i>".$rows[1][$key]."</i>", $content); 
} 
echo $content; 

.