2013-07-10 55 views
1

我有一個PHP文件myfile.php這基本上是內很多html和一些PHP代碼,例如:把一個HTML響應到一個PHP變量

<body> 
    Name: <?php echo $_GET['id'] ?> 
    <!-- and so on ... --> 
</body> 

我使用的是開源的HTML到PDF寫在PHP轉換器,其需要作爲輸入HTML內容將被轉換:

PDFConverter::convertHTMLToPDFFIle($html_input, $filename_output_pdf); 

如何可以在從myfile.php?id=XX生成到$html_input的HTML喂?

+0

細微的差別 - 查詢字符串php文件 –

+0

也是這樣,你在兩個文件之間使用PHP,這是與他自己的文件進行交互的語言要求,在這種情況下,傳遞一個變種。 –

回答

4

你可以使用一點輸出緩衝幷包含它。

<?php 
ob_start(); 
include "myfile.php"; 
$content = ob_get_clean(); 
// $content now contains the processed code of myfile 

在這一點上,該文件的內容已被處理由PHP由於包括並且在$content變量。您可以將其傳遞給convertHTMLToPDFFile()方法。

PDFConverter::convertHTMLToPDFFile($content, $outFilename); 

編輯:OP編輯的問題添加要求,包括的文件需要能夠接受變量。

當包含/需要文件時,它會繼承當前範圍。這意味着它可以訪問已定義的任何變量,類定義,函數等。因此,確定哪些變量是共享的,並在包含文件之前設置這些值。例如:

<body> 
Name: <?php echo $id; ?> 
<!-- and so on ... -> 
</body> 

然後......

<?php 
ob_start(); 
$id = <whatever the value should be>; 
include "myfile.php"; 
$content = ob_get_clean(); 
+0

我可以通過'include「myfile.php?id = xx」'傳遞GET變量嗎? –

+0

不是這樣 - 這只是一個文件包含,並且myfile.php中的任何$ _GET變量都將使用已在範圍內的值進行處理。如果你絕對必須傳遞這樣的值,你可以將它作爲一個完整的URL來包含它,假設你的PHP沒有禁用遠程包含作爲安全風險,但是有更好/更安全/更安全的方法來做類似的事情,所以你真的應該在那種情況下。如果你是,重新考慮你的方法。 – Timothy

+0

我只需要傳遞一個'id'的php文件,不管它是通過查詢字符串還是其他任何方式。將'id'傳遞給php文件的另一種方式是什麼? –

2

如果您的fopen您的主機上啓用URL封裝可以使用文件獲取內容

$html = file_get_contents("http://mysite.com/somefile.php?var=1&var2=2");