2012-01-22 30 views
0

首先我想爲可能的錯誤道歉,英語不是我的母語。我工作的公司迫使我在我們的許多網站上安裝interspire購物車,這很好,我對它很熟悉,但有一件事我不明白(我無法閱讀每一個文件以找到答案,所以我問如果任何人已經知道它)是他們的全局變量(佔位符)如何工作。如果php文件中的全局變量被命名爲$ GLOBALS ['sample'],那麼在html文件中調用它就足以編寫這個 - %% GLOBAL_sample %%。我有一些想法,比如使用strreplace函數來包含htmls,並用PHP內容替換變量。但他們如何讓腳本編輯html文件?那麼有誰知道他們是如何做到的?interspire中的全局變量

回答

1

我已經做了我自己的代碼類似的東西,而我做的方式是沿着這些路線:

ob_start(function($data) { 
    $data = str_replace("%KEYWORD%","replacement",$data); 
    return $data; 
}); 

我把,在我的代碼的開始。顯然,它有更多的關鍵字是有用的,你當然可以循環遍歷全局變量並尋找匹配它們的任何東西,所以這些代碼可以適應很多。這就是我如何去做這樣的事情。

編輯:我剛剛遇到一個整潔的方法,使用關聯數組來做替換。

ob_start(function($data) { 
    return preg_replace_callback(
     "(%([^% ]+)%)", 
     function($m) { 
      static $reps = Array(
       "sample" => "replacement", 
       "test" => "successful", 
       "message" => "Hello" 
      ); // define your keywords here 
      if(isset($reps[$m[1]])) return $reps[$m[1]]; 
      return $m[0]; 
     }, 
     $data); 
}); 

樣品輸入:

%消息%。這個例子將測試%sample%,希望是%test%。

輸出:

你好。這個例子將測試替換,並希望成功。

+0

感謝您的回答。我在想那樣的事情。但我無法弄清楚這一點 - 好吧,你可以在一些文本中創建替換%%變量%%的腳本。但是,你如何從html文件中獲取它們?我的意思是如果你在php中包含* .html文件並且它不包含php標籤,解析器將以純文本顯示所有內容。那麼你如何索引你想要替換的佔位符呢? – user1163870

+0

編輯:我想我弄明白了 - $ var = file_get_contents('test.html'); $ rep = str_replace(「GLOBAL」,「something」,$ var); – user1163870

+0

添加了更好的處理替換方法。請參閱編輯答案。 –