分類: PHP 開發筆記

[PHP] 查詢系統路徑分隔符號

由於 Windows 和 Linux 的程式寫法稍有差異,再加上 Linux 和 Windows 的系統分隔符號不同,所以利用 php 內建的變數,來查詢系統的分隔符號,進而拚出檔案路徑,是一個實用且常見的做法。

而以下為一個簡單的範例程式碼:

<?php 
define('DS', DIRECTORY_SEPARATOR);
if(DS=="\\")
    echo "OS is windows";
else if(DS=="/")
   echo "OS is Unin-like";
else
   echo "OS is Unknown";
?>

 

Continue reading

[PHP] include_once 和 require_once

include_once 和 require_once都是PHP的函式,主要是要包含其它的檔案進來,而且萬一該檔案被包含過了,則不會重新再包含一次。

而基於PHP不可能開發同一個函式的情況下,去試了一下他的不同之處,在於include_once萬一遇到錯誤,則會持續執行,但require_once則會停止執行,並產生Fatal Errors。

以程式碼說明如下:

檔名:test.php

<?php
  require_once("a.php");
  require_once("c.php");
  echo dirname(__FILE__)." in test.php\n";
?>

 

檔名:a.php

<?php
  echo dirname(__FILE__)." in a.php"."</br>";
  require_once("b.php");
?>

 

檔名:b.php

<?php
  echo dirname(__FILE__)." in b.php"."</br>";
?>

 

使用「require_once」會出現下列結果:

C:\AppServ\www\PTS in a test.php
C:\AppServ\www\PTS in b test.php

Warning: require_once(c.php) [function.require-once]: failed to open stream: No such file or directory in C:\AppServ\www\PTS\test.php on line 3

Fatal error: require_once() [function.require]: Failed opening required 'c.php' (include_path='.;C:\php5\pear') in C:\AppServ\www\PTS\test.php on line 3

 

但若是改成include_once,則會變成

C:\AppServ\www\PTS in a test.php
C:\AppServ\www\PTS in b test.php

Warning: require_once(c.php) [function.require-once]: failed to open stream: No such file or directory in C:\AppServ\www\PTS\test.php on line 3

Warning: include_once() [function.include]: Failed opening 'c.php' for inclusion (include_path='.;C:\php5\pear') in C:\AppServ\www\PTS\test.php on line 3
C:\AppServ\www\PTS in test.php

 

Continue reading