ホームページ > バックエンド開発 > PHPチュートリアル > PHP での定数 DIRECTORY_SEPARATOR の使用法の詳細な分析、separator_PHP チュートリアル

PHP での定数 DIRECTORY_SEPARATOR の使用法の詳細な分析、separator_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:14:07
オリジナル
941 人が閲覧しました

PHPの定数DIRECTORY_SEPARATOR、セパレータの使用法を詳細に分析

この記事の例では、php での定数 DIRECTORY_SEPARATOR の使用法について説明します。参考のためにみんなで共有してください。詳細は以下の通りです

PHP における DIRECTORY_SEPARATOR は何を意味しますか? DIRECTORY_SEPARATOR を使用するのに最も適切な時期はいつですか? PHP の DIRECTORY_SEPARATOR 定数を紹介します。

Windows システムと Linux システムのバックスラッシュは異なるため、DIRECTORY_SEPARATOR はバックスラッシュを表す PHP 定数であることがわかります。 Windows では、スラッシュ (/) とバックスラッシュ () の両方をディレクトリ区切り文字として使用できます。Linux では、パス区切り文字は「/」です。

では、PHP コードでバックスラッシュを表すために DIRECTORY_SEPARATOR を使用するのはどのような場合ですか?
たとえば、この文:

コードをコピーします コードは次のとおりです:
require_once dirname(__FILE__).DIRECTORY_SEPARATOR './../../../wp-config.php';
require_once dirname(__FILE__).DIRECTORY_SEPARATOR.'inc/options.php';

なぜこれら 2 つの PHP コードでは最初の部分で DIRECTORY_SEPARATOR を使用し、後半で「/」を使用するのですか
ご存知のとおり、Windows では and/ ですが、LINUX では /

です。

プログラムはローカルで正常に動作しますが、サーバーにアップロードした後、画像のリンクが絶対パス var/ になっていることがわかりましたが、このパスは相対パスに処理されていたと記憶しています。

コードをコピーします コードは次のとおりです:
$path = dirname(dirname(dirname(__FILE__))).'\';
$search = array( $path, '\');
$replace = array( '', '/');
return str_replace($search,$replace,$this->tempfolder).$this->filename_prefix.$public.'.jpg';
コードの最初の行は、LINUX "\" で使用すると機能しないこともわかります。

解決策は、PHP の事前定義定数 DIRECTORY_SEPARATOR を使用して、'' や '/' などのパス区切り文字を置き換えることです。Windows と LINUX は両方とも / をサポートしているため、これは正しいと考えていました。ただし、この例からわかるように、パス文字列を処理する必要がある場合はより危険なので、DIRECTORY_SEPARATOR を使用するのが最善です

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

http://www.bkjia.com/PHPjc/911906.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/911906.html技術記事 php での定数 DIRECTORY_SEPARATOR の使用法、セパレーターの詳細な分析 この記事では、php での定数 DIRECTORY_SEPARATOR の使用法を例とともに説明します。参考のためにみんなで共有してください。詳細は以下の通りです: DIRECTOR...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート