携帯絵文字変換スクリプトをPHPで作ってみた。 携帯サイトを作ろう! -ちょっと詳しいモバイルサイトの作り方-
地味に携帯対応にしております。自分のサイトで使うとは思いませんが、お勉強の一環です。
上記の「携帯絵文字変換スクリプト 」を、テスト用のフォルダに投入。設定が済んでしばらくそのままにしていたのを再度さわってみました。すると、表示できない部分がありました。
【表示できない原因】
パスミスです。ファイルを読み込むとき、リンクのアドレスを「相対パス」で読み込みます。htmlでいじる限り、「相対パス」は自分からみ得ている場所を指します。
たとえるなら住所。水戸駅ビルにたとえてみましょう。
絶対パス 茨城県水戸市宮町1丁目1番1号
相対パス うちからみた場所を示します。
えっと駅前を抜けて千波大橋を渡って、共同病院の手前の秋になると「だんだん」の実が落ちてる交差点を右折して、坂をおりて昔鉄道弘済会のお店があった場所を右手にみながら、3月で店じまいをする百貨店の西友が見えたら右折。
みたいな書きかた。
通りすがりの観光客には通じるので便利ですが、国土地理院につとめるおじさんには「おまえの説明はわからん」と怒られます。
【EXCEL】水戸駅ビル GSI HOME PAGE – 国土地理院
htmlの世界なら、水戸駅前の産業会館かNTTDoCoMoの電波塔を指さして、自分のいる場所から「あっち」と指させばよいのですが、phpさんは厳格なので「ルート」「カレント」からのパスになります。「ルート」「カレント」って言うのはそうね、たとえば「東京駅」みたいな。袋田の滝で言うと一番上の段の一番上ね。
自然-袋田の滝::茨城県 大子町
phpの規則では「実行したファイルのあるディレクトリが常に実行時のカレントディレクトリになる」といいます。
「俺のいる場所は必ず東京駅の1番線の1番奥のキヨスクだ」 と言い張る強情な奴の主張です。最初は融通の利かない石頭と思って、「だから水戸駅があるでしょ ?」と「勝田駅」からのパスを書いてみようとしましたが、説明の仕方が毎回変わるしいいことがありません。
「東京駅」基準は案外それはそれで便利なのかもしれないと考えを変え、すなおに仕様に従ううことにしました。
dirname(__FILE__)でinclude()の相対パストラブル解決
–GO!’s Lab α @ OklaHOME–
***
どこでも良いのですが、phpのパスは相対で書くと一番上をさします。htmlの<a>リンクとは違う動きをします。たとえば「1.php」のなかに「2.php」のリンクを作った場合、問答無用に上にある「2.php」を指します。「contents」フォルダを作ってその中を指したつもりでも最上位にあるファイルを指してしまうで困ってました。
2.php(カレントとかルートからみたらここ)
|
{contents}-index.php-1.php-2.php(相対パスでここを書いたつもり)
下の「2.php」を強制的に読ませる方法もあるのですが、サイト(ホームページ)自体を設定するなら何も無理して相対にしなくても仕様通りに上から読ませれば良いことにようやく気がつきました。その方がサイトの設定が楽です。
先輩に聞くPHPの素朴なギモン(AD)