iT邦幫忙

0

php 設定啟用 php縮寫(php.ini、short_open_tag)

啟用 php 縮寫能節省一些寫法,雖然沒差多少,只是要是腳本多了,看起來就比較好辨識
例如php 腳本一開頭需要加上 php

<?php
    // do..
?>

開了簡寫後就不用了

<?
    // do..
?>

以及要 echo 資料時

<?php echo $data; ?>

開了簡寫後

<?=$data;?>

是不是乾淨多了呢!
可能還有其他的簡寫方式,但是我沒有發現~

只是注意如果有使用 crontab 跑 php 腳本時,該腳本的開頭還是要有 <?php 不然會無法運行喔!(原因不明)知道的人跟我說一下呦!

那就開始設定簡寫功能吧
前往你目前正在使用的 php 版本,裡面會有 apache2 資料夾
直接 nano 進去 php.ini

$ nano /etc/php/7.X/apache2/php.ini

然後找到 short_open_tag 將它改為 On 就行了

short_open_tag = On

別忘了 reload

$ service apache2 reload

參考
https://ianakaberlin.medium.com/php-%E8%A8%AD%E5%AE%9A%E5%95%9F%E7%94%A8-php-%E7%B8%AE%E5%AF%AB%E6%A8%A1%E5%BC%8F-php-ini-short-open-tag-%E4%BC%8A%E6%81%A9%E8%B8%A9%E5%9D%91%E7%AD%86%E8%A8%98-76eb817b4fe0


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

2
blacktea1105
iT邦新手 5 級 ‧ 2020-11-24 23:03:04

crontab 不能使用簡寫的原因有可能是: crontab 是用 php-cli(不同的 SAPI),其 php.ini 路徑與 Apache(使用 PHP 模組)的 php.ini 路徑不相同。

有兩個 PHP:Apache 執行 PHP 腳本的方式是把 PHP 編譯到 Apache 模組使用;而 php-cli 是安裝在該作業系統中的另一個 PHP。

如果是這樣,目前有想到兩個解決方法。

  1. 修改 php-cli 的 php.ini 中 short_open_tag 的設定。在終端機執行 php --ini 會顯示其讀取 php.ini 的路徑,在修改該 php.ini 檔應該就 OK 了!(short_open_tag 預設值是 'On',所以應該會找到該 php.ini)
  2. 使用 php 指令時加上 -c "[php.ini path]"。(不建議使用,因為可能會與 php-cli 原本讀取 php.ini 差異太大導致其他問題)e.g.: php -c /etc/php/7.X/apache2/php.ini [php script file]。

我要留言

立即登入留言