0

我想简单地跳过文件名以“@2x”结尾的文件并在此代码中实现:

$fullres = glob("gallery/*.*");
        for ($i=0; $i<count($fullres); $i++)

            {                           
                $num = $fullres[$i];                        
                echo '<a href="'.$num.'" ><img src="/slir/?w=60&amp;h=80&amp;c=3x4&amp;q=85&amp;i=/'.$num.'" alt=""  /></a>';
            }

真的有可能吗?

4

4 回答 4

0

你不应该使用substr()cuz,而不是假设文件名没有任何句点,而是使用pathinfo

<?php

$fullres = glob("gallery/*.*");
foreach($fullres as $num) {
$fetch_file_name = pathinfo($num); //Fetch the file name with extension
$match_str = substr($fetch_file_name['filename'], -3); //Crop the file name

   if($match_str != '@2x') {
      echo '<a href="'.$num.'" ><img src="/slir/?w=60&amp;h=80&amp;c=3x4&amp;q=85&amp;i=/'.$num.'" alt=""  /></a>';
   }
}
?>
于 2013-05-18T10:32:12.700 回答
0

是的,您可以使用 substr();

if(substr($num, -3) == '@2x') continue;

在定义 $num 之后添加这一行。

你也可以简化你的代码

<?php

 $fullres = glob("gallery/*.*");
 foreach($fullres as $num)
 {
     if(substr($num, -3) == '@2x') continue;
     echo '<a href="'.$num.'" ><img src="/slir/?w=60&amp;h=80&amp;c=3x4&amp;q=85&amp;i=/'.$num.'" alt=""  /></a>';
 }

?>

使用DirectoryIterator的解决方案

<?php

foreach (new DirectoryIterator('gallery/') as $fileInfo) {
    if($fileInfo->isDot() || substr($fileInfo->getFileName(), -3) == '@2x')) continue;
    echo '<a href="'.$fileInfo->getFilename().'" ><img src="/slir/?w=60&amp;h=80&amp;c=3x4&amp;q=85&amp;i=/'.$fileInfo->getFilename().'" alt=""  /></a>';
}

?>
于 2013-05-18T10:21:38.420 回答
0

一个选项是过滤从glob()using返回的数组preg_grep()

$fullres = glob("gallery/*.*");
$files = preg_grep('/@2x$/', $fullres, PREG_GREP_INVERT);
foreach ($files as $num)
{
    // ...
}
于 2013-05-18T10:35:05.077 回答
0
enter code here

$fullres = glob("gallery/*.*");
for ($i = 0; $i < count($fullres); $i++) {
    $num = $fullres[$i];
    $info = pathinfo($num);
    $file_name =  basename($num,'.'.$info['extension']);
    if(substr($file_name, -3) != "@2x"){
        echo '<a href="'.$num.'" ><img src="/slir/?w=60&amp;h=80&amp;c=3x4&amp;q=85&amp;i/'.$num.'" alt=""  /></a>';
    }    
}

试试这个

于 2013-05-18T10:40:44.040 回答