2010-03-20 5 views
2
<?php 
    $a="php.net s earch for in the all php.net sites this mirror only function 
     list online documentation bug database Site News Archive All Changelogs 
     just pear.php.net just pecl.php.net just talks.php.net general mailing 
     list developer mailing list documentation mailing list What is PHP? PHP 
     is a widely-used..."; 
?> 

특정 단어를 강조하고 싶습니다.preg_replace의 문자열 바꾸기

예를 php를 들어

, netfunc :

php.net s earch for in the all **php**.**net** sites this mirror only **func**tion list online documentation bug database Site News Archive All Changelogs just pear.**php**.**net** just pecl.**php**.**net** just talks.php.net general mailing list developer mailing list documentation mailing list What is **PHP**? **PHP** is a widely-used...

감사합니다 사전. 당신은 다음과 같은 작업을 수행 할 수

+0

왜 처음'php.net'가 강조되지 않은 : 당신이 할 수있는 모든 단어로만 키워드를 교체하려면? – kennytm

+0

'php, PHP, php (123), php.net '을'** php **, PHP, php (123), php.net'으로 변환해야한다면 'php, php, '** php **, ** PHP **, php (123), php.net' 또는 ** php **, ** PHP **, ** php ** (123), * * php **. net'? – Crozin

+0

및 어떻게 스크립트를, 어떤 menchion 전체 단어, 키워드를 포함하는 경우? 키워드 "재미", 문자열 - 고양이는 재미 있고, 결과는 - 고양이는 * 우스운 *; – Simon

답변

5

:

// your string. 
$str = "..............."; 

// list of keywords that need to be highlighted. 
$keywords = array('php','net','fun'); 

// iterate through the list. 
foreach($keywords as $keyword) { 

    // replace keyword with **keyword** 
    $str = preg_replace("/($keyword)/i","**$1**",$str); 
} 

키워드는 다른 더 큰 문자열의 하위 문자열 인 경우에도 키워드의 위의 뜻을 교체.

$str = preg_replace("/\b($keyword)\b/i","**$1**",$str); 
+0

이 코드를 다음과 같이 사용하십시오 :'The cat is funny'. 결과는 다음과 같습니다.'고양이는 ** 재미 ** 나이입니다. ' – Crozin

+1

예, 대답을 개선하는 대신에 우는 소리를 보겠습니다. codaddict는'($ keyword)'와'\ b'을 양 옆으로 붙일 필요가 있으며 의도 한대로 작동합니다. – rjh

+0

@ 크로 신 : 그것이 OP가 원하는 것입니다. 키워드가 더 큰 단어의 하위 문자열 인 경우에도 바꾸기를 원합니다. – codaddict

0
$words = 'php|net|func'; 

echo preg_replace("/($words)/i", '**$1**', $a);