2013-09-30 91 views
-1

由於ereg替換已折舊,我想知道如何使用preg來代替。這是我的代碼,我需要替換{}標籤。PHP如何使用preg替換而不是ereg替換?

$template = ereg_replace('{USERNAME}', $info['username'], $template); 
    $template = ereg_replace('{EMAIL}', $info['email'], $template); 
    $template = ereg_replace('{KEY}', $info['key'], $template); 
    $template = ereg_replace('{SITEPATH}','http://somelinkhere.com', $template); 

這將無法正常工作,如果我只是將它切換到preg替換。

回答

2

使用str_replace(),爲什麼不呢?

這樣,哇:

<?php 
$template = str_replace('{USERNAME}', $info['username'], $template); 
$template = str_replace('{EMAIL}', $info['email'], $template); 
$template = str_replace('{KEY}', $info['key'], $template); 
$template = str_replace('{SITEPATH}','http://somelinkhere.com', $template); 
?> 

就像一個魅力。

+0

感謝的人的作品完美 – user2802518

+0

@ user2802518因此將其標記爲一個解決方案:)謝謝! 「 –

0

我不知道如何ereg_replace工作,但preg_replace工作正則表達式。

如果您想更換「{」和「}」

正確的方法是:

$template = preg_replace("/({|})/", "", $template); 
// if $template == "asd{asdasd}asda{ds}{{" 
// the output will be "asdasdasdasdads" 

現在,如果你想更換「{」和「}」只有當具體是在他們裏面的東西,你應該執行:

$user = "whatever"; 
$template = preg_replace("/{($user)}/", "$0", $template); 
// if $template == "asd{whatever}asda{ds}" 
// the output will be "asdwhateverasda{ds}" 

如果你想要的東西,可能是從「A」到「Z」

只有字母的任何字符串替換「{」和「}」

你應該使用:

$template = preg_replace("/{([a-Z]*)}/", "$0", $template); 
// if $template == "asd{whatever}asda{ds}{}{{{}" 
// the output will be "asdwhateverasdads{}{{{}" 
+0

」使用正則表達式和正則表達式。「 - - 什麼? – zerkms

+0

我試圖解釋preg_replace使用正則表達式模塊,所以你必須使用正則表達式來進行搜索。 –

+0

什麼是「正則表達式模塊」? – zerkms