2011-03-09 12 views
17

Bu kodun bir jpg içindeki tüm jpg resimlerini listelemesini sağladım, ancak yalnızca kök dizinimde çalışıyor ve görüntüleri dizinime nasıl yönlendireceğimi bilmiyorum. PHP globini belirli bir dizine nasıl işaret edebilirim?

<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> 

kimse bu konuda bana yardımcı olabilir misiniz?

cevap

35

Bu çalışması gerekir: Aksi

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

:

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

Chdir yaklaşımını beğendim. Bu benim için gerçekten çözdü. teşekkür ederim – Jake

+0

chdir ('images') denedim; yöntem ancak chdir() kullanılarak geri alınamıyor; – CodeGuru

+0

@FlyingAtom chdir ('images') geçerli çalışma dizininizde bir resim klasörü varsa çalışır. getcwd() 'nin nerede olduğunu kontrol etmek isteyebilirsiniz ve işinizi yaptıktan sonra belki başlangıç ​​değerine geri döndürebilirsiniz. Eğer doğrudan çalışmazsa, '/ full/yol/to/images' gibi bir mutlak yol kullanın. –

14

Sadece işlev çağrısının yolunu açın.

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

Sonuçta oluşan dizinin de önceden yazılmış yolu içereceğini unutmayın. Bunu

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

+1 kullanmaya gerek Ancak eğer Notice: Undefined offset: 0 in C:\wamp\www\show_content.php on line ...

bkz döndürülen değerlerdeki yolu hatırlamak ve sadece dosya adını almak için array_map çözümü –

+0

Bir sorunum olduğuna inanıyorum yol ile ... bir yol belirtmezseniz ana bilgisayar köküme gider ve bir yol belirtirsem bana sonuç görüntü vermiyor ... Herkes FatCow barındırmada bu soruna sahipti? – Jake

+0

@Jake Eğer bir yol belirtmezseniz, betiğin yürütüldüğü dizini kullanır. Mutlak bir yol belirtirseniz, sunucu kökünden mutlak bir yol kullanır (web sitenizin bulunduğu belge kökü değil). Muhtemelen sorunun nerede. – Gordon

1

yapmak istemiyorsanız Sadece işlev çağrısı yolunu ekleyin:

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

glob'un anlamı, kök dizini ile başlar. Örneğin ben bu

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

ile görüntü Sonra

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

denemek ve gif bkz görüyoruz. public_images yeri C:\wamp\www\public_images

olduğunu Ama

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

C:\wamp\www\public_images bulunan C:\wamp\www\some_dir çağrı dosyası bulunan dosyadan, daha sonra da echo pathinfo(glob('../public_images/logo_image_.*')[0] , PATHINFO_EXTENSION)

İlgili konular