Linux + phpでのパス指定について

このQ&Aのポイント
  • RedHatLinux4 update6 + Apache2.2.8 + php5.2.5でプログラムを作成しております。Linuxへの移行に伴い、パスの指定について困っています。
  • 具体的には、glob()でのパスの指定方法がわからず、絶対パスと相対パスを試しましたがうまく動作しませんでした。
  • 現在は、sambaを使用してWindowsの共有フォルダを/media/requestにマウントしています。ご教示いただけると幸いです。
回答を見る
  • ベストアンサー

Linux + php でのパス指定

RedHatLinux4 update6 + Apache2.2.8 + php5.2.5でプログラムを作成しております。いままでWindows上でphpを動かしていたのですがLinuxに移行することになり、パスの指定が分からなく困っています。 具体的に下記のようなプログラムを動かしたいのですが、glob()でのパスの指定がわかりません。絶対パスと相対パスで指定してみたのですがうまく動きませんでした。Windowsでは絶対パスで動いていたのですが・・・ ------------------------------------------------------------- $No_f = "I2450" foreach (glob("/media/request/*$No_f*.xls") as $filepass) { $add=split("/","$filepass"); $pass="$add[3]"; } print "$pass"; ------------------------------------------------------------- sambaでwindowsの共有フォルダを/media/requestにマウントしております。 ご回答、宜しくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

sambaを使ったことはないのですが、それっぽいコメントがglobのページに書いてありましたよ。 http://jp.php.net/manual/ja/function.glob.php#56231 これと同じ感じですかね? 試してないのですが、chdirをしてからやると良さそうですね。

tonpei3631
質問者

補足

ご回答ありがとうございます。 早速、教えていただいた方法を試してみましたが、うまくいきませんでした。 ----------------------------------------------------------------- Warning: chdir() [function.chdir]: Permission denied (errno 13) in /opt/lampp/htdocs/kanri/test.php on line 13 Warning: filesize() [function.filesize]: stat failed for /media/request/xxxx.php in /opt/lampp/htdocs/kanri/test.php on line 17 /media/request/xxxxx.php size ------------------------------------------------------------------ このようなエラーメッセージが表示されてしまいます。 絶対パスで指定しているにもかかわらず、実行したphpファイルがあるフォルダをカレントディレクトリとしてしまうようです。

関連するQ&A

  • Linux + phpで2バイト文字のパス指定

    RedHatLinux4 update6 + Apache2.2.8 + php5.2.5でプログラムを作成しております。 //server/share/hogehoge を /opt/lampp/htdocs/share にcifsマウントして、サーバの"hogehoge"ディレクトリにある"補毛補毛"というディレクトリにアクセスできるようphpに記述したいのですが、うまくいかずに困っています。 /opt/htdocs/test.php ------------------------------------------------------------------- $glob="./hogehoge/補毛補毛"; chdir($glob);           //カレントディレクトリ移動 foreach (glob("*.xls") as $filepath) { echo "$filepath size " . filesize($filepath) . "\n"; } ------------------------------------------------------------------- 具体的には上記のようなソースを書いたのですがうまく動きませんでした。./hogehoge/までなら動くのですが、そこに2バイト文字を含めるとうまく動きません。 どうにかしてうまく動かす方法はありませんでしょうか。サーバ側のディレクトリ名を変更することはできません。 ご回答、宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • include_pathに絶対パスを使うことはできないのでしょうか?

    include_pathに絶対パスを使いたいと思っています。 本当は php_value include_path "/common/php" としたいところですが、上手くいかなかったので php_value include_path ".:common/php:../common/php:../../common/php" として、ほとんどの階層からの相対パスを指定することで、上手く動くようになりました。 しかし、どうしても絶対パスで指定したいです。他のサイトでinclude_pathを調べても、どこも絶対パスでやっています。私は何がいけないのでしょうか……?

    • ベストアンサー
    • PHP
  • パスの書き方。

    パスの書き方。 require_once "Auth.phpのパス"でAuth.phpのパスを指定したいのですがどのように書いていいのかがわかりません。 Auth.phpの場所は ・・・ /Users/XXXXX/PEAR プログラムの場所は ・・・ /Library/WebServer/Documents です。よろしくお願いします

    • ベストアンサー
    • PHP
  • Java 指定されたパスが見つかりませんのエラー

    Windows 8 (x64)を使っています。 jdk-6u45-windows-x64をダウンロードしてJavaを使っていましたが、 しばらくJavaを使ってなかったのですが 久しぶりにコマンドプロンプトでディレクトリ移動をしようとしたら 指定されたパスが見つかりません  というエラーが出ています。 これってPATHが通っていないというやつなんでしょうか? PHPやらWordPressやらApacheを入れてから出た気がします。 C:\Program Files\Java\jdk1.6.0_45\binのフォルダにjavac.exeファイルは ちゃんとあります。コマンドプロンプトでバージョン確認も出来ます。 今のPATHは C:\Program Files\Java\jdk1.6.0_45\bin;C:\Users\自分の名前\AppData\Local\Box\Box Edit\c:¥php;\C:\Program Files\MySQL\MySQL Server 5.5\lib です。 PATHが間違ってますか?

    • ベストアンサー
    • Java
  • 指定フォルダの絶対パス取得

    初歩的なことですが教えてください。 VB.netにて、指定したフォルダの相対パスに対する絶対パスの取得を行いたいのですが、良い方法が見つかりません。 「Path.GetFullPath メソッド」を使用して見ましたが、存在しないパス「例:\A\」を指定すると、勝手に「例:C:\A\」のように絶対パスが割り付けられてしまいます。実際に存在するパスを検索して取得することは出来ないのでしょうか? 例:「ABC」というフォルダが「C:\program files」や「D:\」などに存在するという結果です。

  • PHPのinclude_pathについて

    以下はPEARでExcelファイルを作成し、ダウンロードするプログラムです。 <?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer('sample3-1.xls'); $worksheet =& $workbook->addWorksheet('サンプル'); $workbook->close(); print('<html>'); print('<head>'); print('<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />'); print('</head>'); print('<body>'); print('<p><a href="./sample3-1.xls">Excelファイル</a></p>'); print('</body></html>'); ?> このプログラムを実行すると、 Warning: require_once(Spreadsheet/Excel/Writer.php) [function.require-once]: failed to open stream: No such file or directory in C:\Inetpub\wwwroot\Test\src\excelsample.php on line 2 Fatal error: require_once() [function.require]: Failed opening required 'Spreadsheet/Excel/Writer.php' (include_path='.;C:\php5\pear') in C:\Inetpub\wwwroot\Test\src\excelsample.php on line 2 というエラーメッセージが出ます。 php.iniには、PEARのパッケージをインストールした際に ;***** Added by go-pear include_path=".;C:\php-5.2.17-Win32-VC6-x86\pear" ;***** と記述されているにも関わらず、エラーメッセージのpathはinclude_path='.;C:\php5\pear'となっており、原因がわかりません。 php.iniはC:\WINDOWSの直下に置いてあります。 PHPのバージョンはphp-5.2.17-Win32-VC6-x86で、Cドライブの直下にインストールしています。 WebサーバーはIISです。 eclipseを使っており、バージョン?はpleiades-e3.6-php_20110326です。 また、phpinfoのinclude_pathはLocalとMasterの両方が.;C:\php5\pearとなっています…。 Configuration File (php.ini) Path C:\WINDOWS Loaded Configuration File C:\WINDOWS\php.ini この2つはこの様になっており、これは2つの場所は一致していないといけないのでしょうか? 解決手段がまったくわかりません。 何かこのエラーについてわかることがあれば教えていただけませんか?

    • 締切済み
    • PHP
  • PHPでパスの取得に関して

    PHPExcelというものを使用して、EXCELファイルを出力するプログラム を作成しています。 その中で、できないのではないかと想定はしていますが、出力するファイルを自パソコン側へ 作成したいと考えています。 その為、出力ファイル先を自PCの例えば、、、Cドライブやデスクトップという指定をしたいと 考えていますが、PHPでそれらのパスを取得する事は可能なのでしょうか??? 教えて頂きたいと思います。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • ファイルのパスについて

    下記のような構成でプログラムを組んでいます。 ([d]=ディレクトリ、[f]=ファイル) test[d] ├ test_dir[d] │ └ index2.php[f] │ ├ test_dat[d] │ └ data.dat[f] │ ├ index.php[f] └ common.inc[f] common.incにはindex.php、index2.php双方で使う共通関数が入っており、data.datのデータを読み込みます。 その際に、common.incの中でdata.datへのパスを"./test_dir/data.dat"設定しておくと、index2.phpでは「No such file or directory」と言われます。 有用な情報かは分かりませんが、common.incの読み込みにはinclude_onceを使用しています。 index2.phpから見ると当然そのパスは存在しないので理屈は分かりますが、解決方法が思い浮かびません。 引数でdata.datへのパスを渡せば問題なく動くと思いますが、出来ればcommon.inc内で解決したいと考えています。 何か良いの解決策は無いでしょうか?すいませんがよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPで同じことがしたいのですが

    はじめて書き込みます。 perlだと思うのですが、以下のコード(パスワードを暗号化して返す)と同じ結果が得られるようにPHPに書き換えたいと思っています。(perlはしたことがありません・・・) local(@f_pass) = @_; local($now) = time; local(@ciphset) = ('a'..'z','A'..'Z','0'..'9','.','/'); local($p1,$p2,$wk,$crypton); ($p1, $p2) = unpack("C2", $now); $wk = $now / (60*60*24*7) + $p1 + $p2 - 8; $crypton = $ciphset[$wk % 64] . $ciphset[$now % 64]; if($f_pass[1] == 2){ $crypton = '$1$' . $crypton; } $f_pass[0] = crypt($f_pass[0], $crypton); return $f_pass[0]; cryptを使っているのではとは思うのですが、指定文字列がなんなのか分かり兼ねています。 1週間程悩んだのですが、$1$がmd5に関係していることくらいまでしかわかりませんでした。 どうか、以下のコードで得られた結果をPHPでも同じ結果になるようにお教えいただけませんでしょうか。 よろしくお願いします。

  • requireでの絶対パス

    いつもお世話になっております。 requireを使ってファイルをインクルードしているのですが、その際は相対パスで記述しています。 <?php require("../template/test.php"); ?> これを絶対パスでうまく記述する方法はあるのでしょうか? 通常、絶対パスで書いてしまうと、iniファイルで定めた絶対パスの指定フォルダが対象になってしまうため、サーバー上での絶対パスにしたいのですが…。 方法がありましたらご教授よろしくお願いします。

    • ベストアンサー
    • PHP