2010-01-28 3 views
1

PHP의 구문 강조 스크립트에 대해 PHP로 찾기 및 바꾸기가 간단한 정규식을 수행해야합니다.PHP에서 일부 문자열을 정규식으로 바꾸시겠습니까?

실제로이 문자열과 같은 전체 PHP 파일이 될 코드 문자열을 가져갈 필요가 있습니다.

$code_string = 'the whole source code of a php file will be held in this string'; 

그리고이 모든 발행 수를 찾아서 교체 할 ...

찾기 : [PHP]<pre class="brush: php;">
찾기로 교체 : [/ php에] 및 교체 와 함께 </pre>

찾기 [javascript] [/ 자바 스크립트]을하고 정말 사람이 나를 도와주세요 수 정규식 좋은 아니에요 </pre>

로 교체 : 10을 <pre class="brush: js;">
찾기로 교체?

+0

이상한 클래스 이름은 무엇입니까? – mauris

+3

@thephpdeveloper : 일부 JS 플러그인은 매개 변수를 지정하는 데 이상한 클래스를 사용하지만 일반적으로 관련 클래스 (예 :'unrelatedclass brush : js; –

답변

4

문자열 내의 문자열을 대체 할 때는 str_replace(); 일 수 있습니다. 내가 제대로 질문을 이해한다면 이런 식으로 뭔가 보일 것 :

$code_string = htmlentities(file_get_contents("file.php")); 
$old = array("[php]","[javascript]","[/php]","[/javascript]"); 
$new = array('<pre class="brush: php;">','<pre class="brush: js;">','</pre>','</pre>'); 
$new_code_string = str_replace($old,$new,$code_string); 
echo $new_code_string; 
+0

완벽 함, 감사합니다. –

0
$out = preg_replace(
    array(
    '/\<\?(php)?(.*)\?\>/s', 
    '/\<script(.*) type\=\"text\/javascript\"(.*)\>(.+)\<\/script\>/s' 
), 
    array(
    '<pre class="brush: php;">$2</pre>', 
    '<pre class="brush: js;">$3</pre>' 
), 
    $code 
); 

이 (장단) 열고 닫는 태그 내의 PHP 소스를 대체 할 것인가를 함께 스크립트 태그 내의 모든 JS 소스를 대체 할 이상 한 문자 (자바 스크립트 소스 파일에 연결된 스크립트 태그를 피할 것입니다).

관련 문제