2011-10-12 73 views
-2

我想重現/轉換這個JS腳本爲PHP腳本,有沒有人可以幫助我? 我想我需要在PHP的preg_replace(),我真的不擅長與它:/PHP重現一個JS腳本(轉換爲PHP腳本)

這是我的js簡單的腳本:

wysiwyg_val = $('.wysiwyg textarea').val() 
.replace(/\n/g, "<br>") 
.replace(/<br>/g,'[br]') 
.replace(/\</g,'&lt;') 
.replace(/\>/g,'&gt;') 
.replace(/\{code\}/g, '<pre><code>') 
.replace(/\{\/code\}/g, '</code></pre>') 
.replace(/\{strong\}/g, '<strong>') 
.replace(/\{\/strong\}/g, '</strong>') 
.replace(/\{italic\}/g, '<i>') 
.replace(/\{\/italic\}/g, '</i>') 
.replace(/\{title\}/g, '<h2>') 
.replace(/\{\/title\}/g, '</h2>') 
.replace(/\{subtitle\}/g, '<h3>') 
.replace(/\{\/subtitle\}/g, '</h3>') 
.replace(/\[br\]/g,'<br>'); 

wysiwyg_val,在逃脫之後,通過Ajax傳遞一個PHP頁面,可以把它作爲$_POST['text']

回答

3
$wysiwyg_val = 'xyz'; // your WYSIWYG input 

$replacements = array(
    array('/\n/g', "<br>"), 
    array('/<br>/g', '[br]'), 
    array('/\</g','&lt;'), 
    // and so forth. 
); 

foreach ($replacements as $replacement) { 
    $wysiwyg_val = preg_replace($replacement[0], $replacement[1], $wysiwyg_val); 
} 
+0

你認爲這是更快然後@queueoverflow代碼? – sbaaaang

+1

速度完全一樣。但是你會爲自己節省很多'$ wysiwyg_val = preg_replace('/ foo/g','bar',$ wysiwyg_val);'線。 – vzwick

+0

它返回一個錯誤:未知修飾符'g'..爲什麼? :O – sbaaaang

1
mixed preg_replace (mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]]) 

所以只是做

$subject = $POST['text']; 

$subject = preg_replace($pattern, $replacement, $subject); 
$subject = preg_replace($pattern, $replacement, $subject); 
... 
+0

是否將$模式與我在js中使用的.replace()模式匹配?我的意思是我可以把相同的模式都用於js和php替換? :) – sbaaaang

+0

如果你看vzwick的答案,它似乎是這樣。 –

+0

有趣的thx! – sbaaaang