2014-12-01 21 views
0

我使用這個代碼找到名字的所有圖像開始thumb_的preg_match與特定的名稱找到圖片

for ($i=0; $i<count($files); $i++) { 
    $pattern = '/thumb_[\w\-]+\.(jpg|png|gif|jpeg)/'; 
    $result = preg_match($pattern, $files[$i], $matches); 
    echo $matches[0]."<br>"; 
} 

我得到這個:

Notice: Undefined offset: 0 in C:\xampp\htdocs\imgs.php on line 31 

Notice: Undefined offset: 0 in C:\xampp\htdocs\imgs.php on line 31 

Notice: Undefined offset: 0 in C:\xampp\htdocs\imgs.php on line 31 

thumb_Koala.jpg 
thumb_Lighthouse.jpg 
+0

什麼是在線31? – Duniyadnd 2014-12-01 20:49:31

+0

echo $ matches [0]。「
」; – user3274509 2014-12-01 20:50:23

+0

由於正則表達式與文件不匹配,因此您會收到錯誤。 。 。在嘗試解析'$ matches'之前,你應該檢查'$ result'的值來查看它是1還是0或者FALSE。你可能會更好使用'glob()'或子字符串搜索(例如'strpos')比正則表達式 – ernie 2014-12-01 22:40:10

回答

0

對於更簡單...

<?php 
foreach (preg_grep('/^thumb_[\w\-]+\.(jpg|png|gif|jpeg)$/', scandir('uploads')) as $path) { 
    printf('<img src="uploads/%s" style="margin: 10px"><br>', $path); 
} 
+0

正確答案! – user3274509 2014-12-01 23:04:55

-1

,你可以簡單的做到這些隱藏任何php上的錯誤

error_reporting(0); 

但其他明智的,你必須問你的自我,爲什麼你得到這個錯誤?這當然是因爲數組$匹配沒有設置,所以當你試圖訪問鍵0你有未定義的錯誤,你可以做一個簡單的檢查數組$匹配。也請把括號內這個0鍵

$matches['0']; 

爲了防止默認密鑰分配。而不是echo你可以使用print_r

你不會因此在這裏張貼任何代碼的感覺是我最終幫助使用此代碼更好

<?php 
$files = glob('images/*.{jpg,png,gif,jpeg}', GLOB_BRACE); 
foreach($files as $file) { 
?> 
<img src='<?php echo $file; ?>' /><br /> 
<?php 
} 
?> 

歡迎您!

+0

謝謝你的幫助,但隱藏錯誤不是解決方案,因爲當我試圖把圖像名稱標籤我得到這個: http://oi59.tinypic.com/zlfded.jpg – user3274509 2014-12-01 22:04:33

+0

我試過這個,但沒有結果: $ pattern ='/^thumb _ [\瓦特\ - ] + \(JPG | PNG | GIF | JPEG)/'。 $ result = preg_match($ pattern,basename($ files [$ i]),$ matches); 圖片: Hydrangeas.jpg Koala.jpg Lighthouse.jpg thumb_Koala.jpg thumb_Lighthouse.jpg – user3274509 2014-12-01 22:08:47

+0

請發表您的完整代碼,可以幫助你,我只是給你例子 – DelphiStudent 2014-12-01 22:23:30