2011-06-10 102 views
1

我有一個巨大的HTML文件,我想轉換爲一個變量輸出。所以,像這樣:轉換一個巨大的HTML文件到PHP變量/回聲

<div class="section"> 
    <h3>hey<? echo $anothervar ?></h3> 
    <input type="submit" id="submit" name="submit" value="Submit" class="button" /> 
</div> 

$myvar; 

    $myvar="<div class=\"section\"> 
       <h3>hey" . $anothervar . "</h3>"; 
    $myvar.=   "<input type=\"submit\" id=\"submit\" name=\"submit\" value=\"Submit\" class=\"button\" /> 
      </div>"; 

RYV。除了一個巨大的文件,其中有PHP插件,但我需要把它全部放在一個變量中傳遞,然後返回它。有沒有一種自動化的方式來做到這一點(希望在Windows上使用NP ++之類的東西?),或者至少有一種方法可以實現這一點的自動化,而不是讓我花費數小時甚至數小時的時間。

編輯:每個人都在辯論我爲什麼要這麼做。這是快速的,也許無聊的迴應;我正在爲WordPress編寫一個插件,它使用簡碼並用單個變量的輸出替換它;如果只是回聲(如我在給出的文件中所做的那樣),則WP將短代碼輸出放置在與內容不同的地方。所以,是的,你可能不希望這樣做,但是這樣的原因(http://codex.wordpress.org/Shortcode_API#Overview):

當顯示the_content時, 簡碼API將解析任何 註冊簡碼如 「[my-shortcode]」,分開並解析 的屬性和內容,如果有的話, 並傳給它們相應的 短碼處理函數。任何字符串 返回(未回顯)的短代碼 處理程序將插入後 正文代替短代碼本身。

+0

你爲什麼要這麼做? – 2011-06-10 20:56:26

+0

'那兒有PHP ......你認爲'include'嗎? – 2011-06-10 20:59:56

+0

我*會*說你可以使用(XML /正則表達式)解析器,但這將需要您的輸入實際上正確格式化和有效。垃圾進入垃圾,就像他們說的那樣。 您不能將變量保存在作爲變量的字符串中。一旦解析器命中了變量,它就會得到該值,或者簡單地將變量的符號(名稱)存儲在它的位置。 – colinross 2011-06-10 21:03:25

回答

4

我不認爲這是一個好主意。如果只有單個變量回顯,它看起來相當不錯(儘管它不是一個HTML文件,而是一個PHP文件,並且您的示例<? echo $anothervar>既不是有效的HTML也不是PHP)。

看看PHP的output buffering如果你希望將結果存儲在一個變量:

<?php 
    ob_start(); 
?> 
<!-- your stuff here --> 
<?php 
    $output = ob_get_clean(); 
    // Do something with output 
?> 
+1

'ob_get_clean'完成'ob_get_contents'和'ob_end_clean'。 – Halcyon 2011-06-10 21:04:04

+0

謝謝,改變了它。 – Daff 2011-06-10 21:06:05

+0

是的,我在那裏改變了那個var,那是一個原本不在文件中的格式問題。 – 2011-06-10 21:16:26

1
ob_start(); 
include("myfile.html"); 
$var = ob_get_clean(); 
+0

OP不想將HTML文件讀取爲變量,而是將其放入PHP文檔中,正確轉義。 – konsolenfreddy 2011-06-10 20:59:28

+0

不,他沒有。他只是希望用PHP值替代HTML。我的解決方案確實如此。 – Halcyon 2011-06-10 21:02:47

3

你也可以使用此...

$your_var = <<<EOF 

a bunch of html goes here 

EOF; 
+1

HEREDOC不允許可變插值iirc。 – colinross 2011-06-10 21:04:04

+0

然後添加一個評估!哦,是的:D(認真,不) – Halcyon 2011-06-10 21:04:40

+0

最後的評論證實了我的感覺,任何*給男人一條魚*回答這個問題將是一個絕對的黑客和可怕的編碼習慣。 : -/ – colinross 2011-06-10 21:13:04

0

請嘗試此代碼

<?php $output=''; 
     $output.='<div class="section">'; 
     $output.='<h3>hey<? echo $anothervar ?></h3>'; 
     $output.='<input type="submit" id="submit" name="submit" value="Submit" class="button" />'; 
    $output.='</div>'; 
    echo $output; 

    ?>