2011-09-10 27 views
1

我有以下代碼:的preg_replace上的自定義短碼

{bookielink href="bet-at-home"} body content{/bookielink} 

,我希望得到以下幾點:

<a href="index.php?bookie=bet-at-home">body content</a> 

這是我的嘗試:

$buffer = preg_replace("/.*{bookielink[^>]*}|.*/si", "<a>", $buffer); 
$buffer = preg_replace("/.*{\/bookielink}|.*/si", "</a>", $buffer); 
+0

可能重複http://stackoverflow.com/questions/3577641/best-methods-to-parse-html-with-php ) – ajreal

+2

@ajreal:根本沒有。 Kicsi正試圖從自定義格式生成HTML。 – Mat

+0

對不起,反對刪除 – ajreal

回答

1

的如下:

$buffer = 'foo {bookielink href="bet-at-home"} body content{/bookielink} bar'; 
echo preg_replace(
    '#{bookielink\s+href="([^"]*)"\s*}([^{]+){/bookielink}#i', 
    '<a href="index.php?bookie=$1">$2</a>', 
    $buffer 
); 

會打印:

foo <a href="index.php?bookie=bet-at-home"> body content</a> bar 
的具體實施方法來解析用PHP HTML(
+0

正則表達式對我來說似乎相當直接,但如果你需要一些解釋,就這麼說,我會擴大一點。 –

+0

感謝您的幫助。 –

相關問題