2011-03-09 8 views
17

私はディレクトリ内のすべてのjpgイメージをリストするためにこのコードを取得しましたが、それは自分のルートディレクトリでしか動作せず、イメージディレクトリをどのように指すのかわかりません。 PHP globを特定のディレクトリに向けるにはどうすればよいですか?

<ul> 
<?php foreach (glob("N*T.jpg") as $image): ?> 
    <li> 
     <a href="<?php echo str_replace("T", "F", $image); ?>"> 
      <img src="<?php echo "$image"; ?>"> 
     </a> 
    </li> 
<?php endforeach; ?> 
</ul> 

誰でも私を助けることができますか?

答えて

35

これは動作するはずです。そうでなければ

glob('images/N*T.jpg'); 

chdir('images'); 
glob('N*T.jpg'); 
+0

私はchdirアプローチが好きです。これは本当に私のためにそれを解決しました。ありがとうございます – Jake

+0

私はchdir( 'images')を試しました。しかし、chdir(..)を使って戻ることはできません。 – CodeGuru

+0

@FlyingAtom現在の作業ディレクトリにimagesフォルダがある場合、chdir( 'images')が動作します。その場所がgetcwd()を使用しているかどうかを確認したい場合や、ビジネスを行った後にgetcwdを初期値に戻すことができます。それが '/ full/path/to/images'のような絶対パスを直接使用するように動作しない場合は、 –

14

関数呼び出しのパスを追加するだけです。

glob('/path/to/directory/N*T.jpg'); 

結果の配列には、前に追加されたパスも含まれることに注意してください。あなたはそれが

array_map('basename', glob('/path/to/directory/N*T.jpg')); 
+6

1を使用する必要がある場合、たとえばしかしNotice: Undefined offset: 0 in C:\wamp\www\show_content.php on line ...

を参照してください

echo pathinfo(glob($_SERVER['REQUEST_SCHEME']. '://'. $_SERVER['SERVER_NAME']. 'public_images/logo_image_.*')[0] , PATHINFO_EXTENSION). ' <br/>'; 

で返された値のパスを覚えていて、ファイル名だけを取得するためのarray_mapソリューション –

+0

私は問題があると信じています私はパスを指定していない場合、私のホストのルートに行くと私はそれは私に結果の画像を与えるパスを指定する...誰もFatCowのホスティングでその問題を抱えていた? – Jake

+0

@Jakeパスを指定しないと、スクリプトが実行されるディレクトリが使用されます。絶対パスを指定すると、サーバールートからの絶対パスが使用されます(Webサイトのドキュメントルートではありません)。おそらくあなたの問題がどこにあるのでしょうか。 – Gordon

1

を行いたくない場合はちょうどあなたの関数呼び出しへのパスを追加します。

glob("/my/path/to/directory/N*T.jpg") 
1
$files = glob("/path/to/directory/N*T.jpg"); 
0

理解して通りglobはルートディレクトリで始まります。例えば、私は、この

<img src="<?php 
echo $_SERVER['REQUEST_SCHEME']. '://'. $_SERVER['SERVER_NAME']. '/public_images/logo_image_.gif'; 
?>"></img> 

echo pathinfo(glob('public_images/logo_image_.*')[0] , PATHINFO_EXTENSION). ' <br/>'; 

を試してみて、gifを参照して、画像を参照してください。 public_imagesの場所はC:\wamp\www\public_images

である。しかしC:\wamp\www\public_imagesに位置C:\wamp\www\some_dirコール・ファイルにあるファイルから、そのためにecho pathinfo(glob('../public_images/logo_image_.*')[0] , PATHINFO_EXTENSION)

関連する問題