2016-04-01 62 views
-1

我正在製作一個網站,並且我想在PHP中製作一個自定義的標記類型語言。我希望標籤被[]包圍。現在,我在想這件事,像其他人會,我可以做這樣的事情:PHP自定義標記語言解析器

function formatMarkup($markup = ''){ 
    $markup = str_replace('[color=blue]', '<span style="color: blue">', $markup); 
    return $markup 
} 

即使可能的工作,它會更progrematically正確的,如果它會做類似explode(),但在開始每個[,結束於每個]。如果我發現這會很好。感謝您的時間和精力。

編輯: 我決定使用preg_split()。這似乎很好,所有,但我不能得到正則表達式。 Here is my code

編輯#2: 我已經得到了大部分的正則表達式,但是在數組中有多餘的額外鍵。我將如何修復它們? Here is my new code

回答

0

我已經制作了我的標記語言。我用

$split = preg_split("/(\[|\])/", $markup); 

拿到個人「標籤」,並使用

foreach($split as $k => $v){ 
     if(strlen($v) < 1){ 
      continue; 
     } 

通過他們每個人文盲,並檢查是否爲空值。然後,在那之後,我會完成所有檢查,並將代碼塊解析在一起,並在行後重新構建文本。