这个PHP opendir()在服务器上很累人吗? if(is_dir($dir)){ 如果($handle=opendir($dir)){ 而($file=readdir($handle)){ //将文件名按句点分隔;如果有多个文件,请抓取最后一个文件。 $parts=分解(“.”,$file); if(is_数组($parts)&&count($parts)>1){ $ext=结束($parts); //如果这是我们想要的图像,回显代码。 如果($ext==“png”或$ext==“png”或$ext==“jpg”或$ext==“jpg”或$ext==“jpeg”或$ext==“jpeg”或$ext==“gif”或$ext==“gif”) 回声“; } } closedir($handle); } ...

这个PHP opendir()在服务器上很累人吗? if(is_dir($dir)){ 如果($handle=opendir($dir)){ 而($file=readdir($handle)){ //将文件名按句点分隔;如果有多个文件,请抓取最后一个文件。 $parts=分解(“.”,$file); if(is_数组($parts)&&count($parts)>1){ $ext=结束($parts); //如果这是我们想要的图像,回显代码。 如果($ext==“png”或$ext==“png”或$ext==“jpg”或$ext==“jpg”或$ext==“jpeg”或$ext==“jpeg”或$ext==“gif”或$ext==“gif”) 回声“; } } closedir($handle); } ...,php,performance,opendir,Php,Performance,Opendir,我在Wordpress中使用它,页面加载速度非常慢,但也可能是因为页面上有很多图像。我只是想确保我没有做一些因性能原因而不受欢迎的事情。获取firefox“quickjava”插件 通过这种方式,您可以禁用图像(通过单击右角的蓝色I使其变为红色),并在没有任何图像的情况下测试网页的性能。获取firefox“quickjava”插件 通过这种方式,您可以禁用图像(通过单击右角的蓝色I使其变为红色),并在没有任何图像的情况下测试网页的性能。您可以提高效率: if (is_dir($dir)) {

我在Wordpress中使用它,页面加载速度非常慢,但也可能是因为页面上有很多图像。我只是想确保我没有做一些因性能原因而不受欢迎的事情。

获取firefox“quickjava”插件

通过这种方式,您可以禁用图像(通过单击右角的蓝色I使其变为红色),并在没有任何图像的情况下测试网页的性能。

获取firefox“quickjava”插件


通过这种方式,您可以禁用图像(通过单击右角的蓝色I使其变为红色),并在没有任何图像的情况下测试网页的性能。

您可以提高效率:

if (is_dir($dir)) {
  if($handle = opendir($dir)) { 
        while($file = readdir($handle)) {
        // Break the filename by period; if there's more than one piece, grab the last piece.
        $parts = explode(".", $file); 
        if (is_array($parts) && count($parts) > 1) {
            $ext = end($parts);
            // If it's an image that we want, echo the code.
          if ($ext == "png" OR $ext == "PNG" OR $ext == "jpg" OR $ext == "JPG" OR $ext == "jpeg" OR $ext == "JPEG" OR $ext == "gif" OR $ext == "GIF")
            echo "<img src=\"$path/$file\" />";
      } 
    }
    closedir($handle);
  }
...
$extension=strtoupper(pathinfo($file,pathinfo_扩展名));
if(在数组中($extension(数组('PNG','JPG','JPEG','GIF')){
回声';
}  
或者甚至使用而不是opendir/readdir/closedir…因为您可以给它一个文件扩展名模式


但是它并没有天生的慢

那么你可以让它更高效:

if (is_dir($dir)) {
  if($handle = opendir($dir)) { 
        while($file = readdir($handle)) {
        // Break the filename by period; if there's more than one piece, grab the last piece.
        $parts = explode(".", $file); 
        if (is_array($parts) && count($parts) > 1) {
            $ext = end($parts);
            // If it's an image that we want, echo the code.
          if ($ext == "png" OR $ext == "PNG" OR $ext == "jpg" OR $ext == "JPG" OR $ext == "jpeg" OR $ext == "JPEG" OR $ext == "gif" OR $ext == "GIF")
            echo "<img src=\"$path/$file\" />";
      } 
    }
    closedir($handle);
  }
...
$extension=strtoupper(pathinfo($file,pathinfo_扩展名));
if(在数组中($extension(数组('PNG','JPG','JPEG','GIF')){
回声';
}  
或者甚至使用而不是opendir/readdir/closedir…因为您可以给它一个文件扩展名模式


但是它本身并不慢

我们不能确切地说opendir慢,因为有许多配置值会影响性能

您应该做的是对应用程序中的代码段进行基准测试,如下所示:

$extension = strtoupper(pathinfo($file, PATHINFO_EXTENSION));  
if (in_array($extension(array('PNG', 'JPG', 'JPEG', 'GIF'))) {
    echo '<img src="$path/$file" />'; 
}  
看看到底花了多长时间来处理

其他一些提示:

$ext==“png”或$ext==“png”
是多余的,您应该使用
$ext=strtolower(end($parts));
然后只使用:

$start = microtime(true);
//Your Code
$end = (microtime(true) - $start);
更好的是,你可以直接使用

$ext == "png" OR $ext == "jpg" OR $ext == "jpeg" OR $ext == "gif"

另外,不要使用
,只需对OR条件使用双管道操作符:
|

我们不能确切地说opendir很慢,因为它们有许多配置值可以影响性能

您应该做的是对应用程序中的代码段进行基准测试,如下所示:

$extension = strtoupper(pathinfo($file, PATHINFO_EXTENSION));  
if (in_array($extension(array('PNG', 'JPG', 'JPEG', 'GIF'))) {
    echo '<img src="$path/$file" />'; 
}  
看看到底花了多长时间来处理

其他一些提示:

$ext==“png”或$ext==“png”
是多余的,您应该使用
$ext=strtolower(end($parts));
然后只使用:

$start = microtime(true);
//Your Code
$end = (microtime(true) - $start);
更好的是,你可以直接使用

$ext == "png" OR $ext == "jpg" OR $ext == "jpeg" OR $ext == "gif"
另外,不要使用
,只需对OR条件使用双管道操作符:
|