2015.04.14phpの基本シリーズです。require_onceで入れ子状態でファイルを参照するときの問題。参照したファイルにもrequire_onceが書いてある場合、普通に書いてあったのでは参照エラーになる。いうとき親ディレクトリのパスを表示するdirname(__FILE__)の使用はマストです。目次(見たい所へGO!)require_onceのときのパスでエラーdirname(__FILE__)は自身がいるディレクトリの絶対パスを返す。require_onceのときのパスでエラーたとえばrequire_onceの場合、以下の問題がある。test/a.phptest/dir1/b.phptest/dir2/c.phpの三つのファイルがある場合。b.phpファイルからc.phpファイルを読み込み、それをa.phpファイルで読み込んで、結果b.php、c.phpの両方の内容をa.phpファイルに読み込みたい、とする。b.phpファイルには「require_once(../dir2/c.php)」と記述。b.phpファイルを実行した場合、問題なくc.phpを読み込む。a.phpファイルには「require_once(.dir1/b.php)」と記述。a.phpファイルを実行した場合、「require_once(.dir1/b.php)」は問題なし。読み込んだb.phpファイルの「require_once(../dir2/c.php)」の部分でエラー。?require_onceは実行しているファイルからのパスで参照する。実行ファイルa.phpから参照したb.phpファイル内の「require_once(../dir2/c.php)」の部分は、a.phpファイルがある階層から「../dir2/c.php」のパスで探しに行ってしまってエラーになる。仮にb.phpに「require_once(dir2/c.php)」と書いてあれば、a.phpからb.phpを参照してもエラーなしにc.phpを参照してくれる。これではb.phpを単独で実行した時にc.phpを参照出来ずにエラーになる。phpでシステムを作っているときに最初は原因がわからずにこの問題で苦労しました。これの対応策で親ディレクトリのパスを表示するdirname(__FILE__)を使います。dirname(__FILE__)は自身がいるディレクトリの絶対パスを返す。dirname(__FILE__)を使うとルート(親)ディレクトリから自分への絶対パスが得られる。https://stray-light.info/wp/php/にあるtest.phpにdirname(__FILE__)を書くと/wp/php/が返ってくる。このtest.phpをhttps://stray-light.info/wp/php/script/に移動するとdirname(__FILE__)が返してくるのは/wp/php/script/になる。どこへ移動しようともルート(親)からの絶対パスを返してくれる。a.phpには「require_once(dirname(__FILE__).’/dir1/b.php’)」b.phpには「require_once(dirname(__FILE__).’/../dir2/c.php’)」と記述。結果、絶対パスになりどこから参照しても問題なく読み込める。dirname(__FILE__)で得られるパスの最後にスラッシュはつかないので、「’/../dir2/c.php’」のように続くパスの先頭にスラッシュを付けるのを忘れずに。ローカルサーバーでもMAMP/htdocsのPHPディレクトリにいるとすると、/Applications/MAMP/htdocs/PHPルートからの絶対パスが返ってくる。「PHP」https://stray-light.info/wp/category/php/(件数:11)↓プログラミングで壁にぶち当たったときはここで助けてもらっています。前回失敗に終わった「ショートコードで最新記事のブログカードを表示させる」の第2弾です。結論を言ってしまうと自作ショートコードで最新記事のブログカードを表示させることは断念しました。unlink使い方を間違えると恐ろしい事に。unlinkのエラーで意図しないファイルが削除されてしまい、真っ白のページになってしまった問題。ディレクトリの特定は出来る。...PHPワードプレスのパンくずリストをdata-vocabulary.orgからschema.orgの書き方に換えるワードプレスのパンくずリストの構造化データの書き方をdata-vocabulary.orgからschema.orgに書き換える方法を調べました。グーグルからの警告メールに対する修正です。PHPがわかる向けの記事です。PHPphpのスクリプト中に全角スペースが入った場合こんなエラーが出た。調べたらarray_push()の手前に全角スペースが入っていた。全角スペースを意識して調べないと気づかないから注意!。PHP簡単なスケジュールのシステムを作ってみた。今回つくるのは、wordpressで記事投稿の際にイベントのスケジュール(開催期間)を登録して開催期間中の記事だったらトップに表示させる、それがなければ直近の未来の日付の記事を表示するという仕様だ。使っていたんだけど、ここらでMacに標準装備のApacheとPHPを使ってみる事にした。高さが足りなくなってしまう問題。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。