
執行 Debian 9 和 PHP 7.3,嘗試使用指令執行檔php -f hello.php
。它不是回顯而是hello
輸出原始碼。完整的程式碼是
#!/usr/bin/php
<?
echo 'hello';
?>
我做了什麼:
- 確認該檔案具有讀取和執行權限。
- 確認PHP舍邦線路是正確的。
- 確認已安裝 PHP CLI 工具。
怎麼了?如何讓它發揮作用?
答案1
當 PHP 解析檔案時,它會尋找開始和結束標記,這些標記是 和 ,
<?php
它們?>
告訴 PHP 開始和停止解釋它們之間的程式碼。以這種方式解析允許 PHP 嵌入到各種不同的文件中,因為 PHP 解析器會忽略一對開始和結束標記之外的所有內容。PHP 還允許使用短開放標記
<?
(不鼓勵這樣做,因為它僅在使用short_open_tag
php.ini
設定檔指令啟用或使用該選項配置 PHP 時才可用--enable-short-tags
)。
(來源)
所以最可靠的解決方案是在程式碼中使用<?php
而不是。<?
答案2
不需要那個「shebang」:
#!/usr/bin/php
只要將你的腳本設定為這樣即可;請注意,您應該將 the 加到php
開始短標記 ( <?
):
<?php
echo 'hello';
?>
然後像這樣運行它:
php -f hello.php
或甚至省略-f
並像這樣運行它:
php ./hello.php
然後輸出將是這樣的:
hello
另外,當你這樣說時:
- 確認該檔案具有讀取和執行權限。
PHP檔案不必有執行權限;只有讀取權限,因為該檔案將由 PHP 解釋器讀取和解析。命令列以及 Apache 模組 PHP 解釋器也是如此。