簡體   English   中英

使用PHP讀取PHP文件?

[英]Read PHP files using PHP?

我有一個PHP文件。 我想閱讀該文件中編寫的PHP代碼。 我正在執行的腳本在文件“ test.php”中。

<?php
$test = file_get_contents('test.php');
echo '<pre>'.$test.'</pre>';
?>

瀏覽器窗口中的輸出為:

'.$test.'

'; ?>

對文件的另一個測試:

<!DOCTYPE html>
<html>
<head>
  <title>Canvas Home</title>

  <link rel="shortcut icon" href="http://localhost/collaborate/icons/collaborate.ico">
<?php
    echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"stylesheets/".basename(__FILE__,'.php').".css\">";
    echo "<script type=\"text/javascript\" src=\"js/".basename(__FILE__,'.php').".js\"></script>";
?>
  <link rel="stylesheet" type="text/css" href="stylesheets/navs.css">
</head>

<body>
  <div></div>
</body>

</html>

給出了輸出:

"; echo ""; ?> 

有人可以解釋一下第一個文件中發生了什么嗎? 我希望返回的字符串會被簡單地回顯。

同樣在第二個文件中,第一個簡單的HTML部分被回顯,因此被理解為HTML。 但是那會發生什么呢? 為什么顯示回顯命令本身?

我基本上想實現讀取任何腳本文件的源代碼,而不是執行腳本,我希望它顯示在瀏覽器窗口中。

由於您要將原始PHP代碼輸出到瀏覽器,因此瀏覽器試圖將<?php呈現為HTML標記。 您可能希望通過html特殊字符運行代碼,以便PHP代碼中的所有HTML元字符都經過編碼發送,然后不由瀏覽器呈現。 例如

$code = file_get_contents('script.php');
echo '<pre>', htmlspecialchars($code), '</pre>';

並請注意,您的瀏覽器會對輸出產生影響,特別是在使用PHP和/或HTML時。 請記住,瀏覽器的工作是渲染 html,以及查找任何類似HTML的內容,包括PHP標記。 如果您在瀏覽器中看到不穩定的輸出,請始終執行“查看源代碼”以查看頁面的原始“代碼”-您可能會在那里看到PHP和html代碼,一切都很好。

正如Mark B所指出的那樣,您的瀏覽器試圖將文件解釋為HTML代碼。一種干凈的解決方案是使瀏覽器將響應正文解釋為純文本,如下所示:

<?php
header('Content-Type: text/plain');
echo file_get_contents(__FILE__);
exit;

注意:在PHP中, __FILE__始終引用當前文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM