問題タブ [include-path]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHPのincludeステートメントに関する質問
Zend_Viewソースを調べていると、次のように表示されます。
文字列" zend.view://"は何を表し、includeステートメントはphpでそれをどのように解決しますか?
symfony1 - symfonyがsfDoctrineDatabase.class.phpを開くのに失敗する
私の問題は非常に単純ですが、それを見ていると迷子になります...私は現在SVNリポジトリにあるSymfonyプロジェクトに取り組んでいます。
それは一日中うまくいきましたが、突然クラッシュしました...
現在、自分のサイトのどのページも起動できません。それらはすべて私に同じエラーメッセージを返します
誰かが何か考えを持っているなら、私はすべての耳です...
php - *Nix および Windows の PHP インクルード パスを設定する適切な方法
これは*nix と Windows の両方defineのインクルード パスへの適切な方法ですか?
上記で含めた末尾のスラッシュに注意してください。include/require のスラッシュは、両方の OS でも同じですか?
編集(回答で更新):
私が収集できることから、以下のコードは、* nix と Windows OS の両方のインクルード/要求パスを普遍的に定義する適切な方法です。以下のコメントで自由に修正してください。
私を混乱させたのは、back-slashes (\)intoの置換を示す多くの例でしたforward-slashes(/)。以下の回答のいくつかに基づいて、これは不要です。
したがって、最終的な正しいコード (純粋主義者向け) は次のとおりです。
そのコードは次の結果を生成します。
*nix: /path/to/the/file/
Windows: C:\Path To\the\file\
__FILE__内側 ( ) から外側 ( )に進む簡単な説明realpath():
FILE ファイルのフル パスとファイル名。シンボリック リンクが解決された絶対パスが常に含まれます。
dirname()返される文字列は、末尾の /component が削除されたパスです。ファイル名を削除する責任があります。
realpath()成功すると、正規化された (正規化/標準化された) 絶対パス名を返します。結果のパスには、シンボリック リンク'/./'や'/../'コンポーネントは含まれません。__FILE__すでにシンボリックリンクが解決されているため、これは徹底のために含まれていると思います。それとも、相対パスを解決するために含まれているのでしょうか? いずれにせよ、それは私たちの目標を固めているようです.
php - インクルードパス解決はrequire_onceでどのように機能しますか?
PHP で Web アプリを作成していたところ、奇妙な状況に遭遇しました。私の問題を説明するために、次の構造の Web アプリを考えてみましょう。
これらのファイルの内容:
index.php:
f1.php:
f2.php: 空白
ブラウザで index.php を開こうとすると、次のエラーが表示されます。
私が見逃している明らかなものはありますか?インクルードパスはPHPでどのように機能しますか?
この質問をする前に、実験して調べようとしました。次のように、別のテストを設定しました。
index.php:
f1.php:
f2.php: 空白
驚いたことに (そして完全に混乱していました)、これでうまくいきました。
では、パス解決の背後にある秘密は何ですか?
PS私はこの質問を見ましたが、ここで述べた2番目のケースにはまだ答えていません。
php - PHP include_once が親ディレクトリのファイルに対して機能しない
機能していない私に受け継がれたサイトで作業を始めたところです。/admin/index.php で /classes/admin.php のインスタンスをインスタンス化しようとするときに問題があることがわかりました。ただし、/admin/index.php を /admin-index.php にコピーすると、クラスを正常にインスタンス化できます。また、/classes/admin.php を /admin/classes/admin.php に移動すると、問題なくインスタンス化することもできます。私がこれに気付いた他のクラスが少なくとも1つあります。
また、これは私のローカル開発マシンでは問題にならないことにも気付きました。サーバー側だけの問題です。
サーバーに関する情報はhttp://charlesekublyfoundation.org/admin/phpinfo.phpにあります。私の開発マシンは、Apache 2.2 と PHP 5.2.11 (Apache/2.2.14 (Win32) PHP/5.2.11 ) を実行する WinXP マシンです。
誰もこのようなものを見たことがありますか?奇妙に思えます。私は PHP 開発 (主に .NET 開発者) にかなり慣れていないので、何が原因なのかわかりません。それがPHPの違いなのか、Apacheの違いなのか、それとも何か他のものなのかはわかりません。
編集 私は、開発マシンがWindowsであるのに対し、私のサーバーはLinuxのブランドで実行されていることに注意してください。include_pathsを調べた後、これと関係があると感じています。
zend-framework - ZendFrameworkのinclude_pathに問題があります
このエラーの取得:
致命的なエラー:require_once()[function.require]:必要な'db / db.php'(include_path='/home/domain.ru/testerier/sites/application/../library:/home/domain.ruを開くことができませんでした/home/domain.ru/testerier/sites/www/indexの/testerier/sites/library:.:/usr/local/lib/php;/home/domain.ru/testerier/sites/application/models')。 51行目のphp
ローカルマシンで完全に機能しています。どうしたの?
c - 多くのファイルで \ を / に置き換えるスクリプトはどのようになりますか?
はい、これは非常に怠惰な質問ですが、これは人々が頻繁に抱えている問題であり、ここの誰かが共有するために何かをすでに書いていると思います.
#includeWindows の相対パスを使用したステートメントを含む C ファイルが大量にあります。他のオペレーティング システム (すぐに、私の OS X 開発マシン) でコードをコンパイルする作業を行っており、これらの include ステートメントのすべてのバックスラッシュをスラッシュに置き換える必要があります。だから、のようなもの#include "libs\helper.h"から#include "libs/helper.h"。
php - Include_Path Zend_Framework
set_include_pathを正しく設定するのを手伝ってください。
php - ドキュメントルートの外にファイルを含める方法は?
私がやりたいことは、「domain1」の「file1.php」を「domain2」の「file2.php」に含めることです。だから私がやるべきだと思ったのは次のようなものです:
しかし、これは私が本当に理解できない理由で機能しません。だから私がしたことは、自分のパスをインクルード パスに追加することでした。何かのようなもの:
私がどこで間違っているのか、ヒントを教えてください。
ありがとう
更新 - いずれにしても、次のエラー メッセージが表示されます。
また、セーフモードのオンとオフの両方でこれを試しました。
UPDATE2: また、テスト ファイルのアクセス許可を 777 に変更し、bash でインクルード ファイルへのパスを再確認しました。
解決策: 謎を解くことができました! 私のホスティング会社は Plesk を使用してドメインなどを管理しています。また、php.ini のエラー報告レベルは E_ALL ではありませんでした。エラー報告を E_ALL に設定すると、次のような警告が表示されました。
そこで、/var/www/vhosts/domain2/conf/httpd.include に入り、open_basedir パスを編集しました。この設定ファイルはドメイン設定が変更されるたびに plesk によって書き換えられるため、これは永続的な解決策ではないことに注意してください。あなたがすべきことは、同じディレクトリにある「vhost.conf」ファイルを編集 (または作成) してから実行することです:
これにより、ドメインの設定が再構成されますが、何らかの奇妙な理由で open_basedir では機能しません。document_root などの他のものを変更できますが、open_basedir は変更されませんが、それは別の問題です:D
解決策の最終: 同じ問題を抱えている人のために、ここで動作する最終的なコードを示します。これを /var/www/vhosts/domain2/conf/vhost.conf に追加しました (「/var/www/vhosts」を「/」または好きなものに変更できます):
みんなありがとう!
php - ドメインにZendFrameworkライブラリを含めるにはどうすればよいですか?
ローカルでは、xamppのインストールでは、ZendフォルダーはPEAR \ Zendの下にあり、Pearはインクルードパスにあります。したがって、require_once "Zend \ Date.php"を実行しても、問題はありません。
しかし、私のドメイン(Hostmonster)では、そうではありません。phpinfo()を実行していますが、Zendフォルダーがどこにあるかわかりません。ZendFrameworkが確実に利用可能であることを示しているようです。ホストに尋ねたところ、php.iniファイルの下部にzend_extension = "/ usr / local / Zend / lib / Optimizer-3.3.9 / php-5.2.x/ZendOptimizer.so"を含めるように言われました。まったく役に立たなかった。
また、php.iniファイルのそのステートメントが何をするのかさえわかりません。誰か助けてもらえますか?