【问题标题】:is_dir How to check if dir exists avoid error messageis_dir 如何检查目录是否存在避免错误消息
【发布时间】:2011-05-17 22:56:51
【问题描述】:

我想我在下面的代码中遗漏了一些东西......也许你可以帮忙

<?php
    $imageurl = $pagename1;
    $imageurl = preg_replace('/\.asp/', ''.$g_sites_img2.'.jpg', $pagename1);
    $filename = $_SERVER{'DOCUMENT_ROOT'}.'/images'.$imageurl;
    if (file_exists($filename)) {
        echo '<img src="'.$mainurl.'/images'.$imageurl.'" width="'.$g_sites_img2.'" align="left" />';
    } else {
        $imgremoteurl = $imgremoteurl.str_replace(' ', '_', strtolower($g_page_identify));
        $imageurlfolder = dirname($pagename1);
        mkdir($_SERVER{'DOCUMENT_ROOT'}.'/images'.$imageurlfolder, 0755, true);
        copy('http://www.dominate-seo.com/images/'.$imgfolder.'/'.$imgremoteurl.'.jpg', $_SERVER{'DOCUMENT_ROOT'}.'/images'.$imageurl);
        $thumb = new Imagick($_SERVER{'DOCUMENT_ROOT'}.'/images'.$imageurl);
        $thumb->scaleImage($g_sites_img2, 0);
        $thumb->writeImage($_SERVER{'DOCUMENT_ROOT'}.'/images'.$imageurl);
        $thumb->destroy();
    }
?>

该代码用于检查图像是否存在。如果图像不存在,则应创建图像文件夹,但如果已存在则不应创建。这就是我的问题所在。如果文件夹存在,它会给我一个错误

警告:mkdir() [function.mkdir]: 文件存在于 /home/game1/public_html/includes

如果我刷新页面,创建文件时错误消息会消失。

如何编写脚本以检查文件夹,如果存在则不会抛出错误?

【问题讨论】:

  • 如果能在 PHP 代码中添加换行符就好了...
  • 您应该通过单击答案的勾号来接受适合您答案的答案。否则您可能会失去在本网站提问的权利。

标签: php regex


【解决方案1】:

如果目录不存在,is_dir() 方法返回 false。您可以使用此检查替换 mkdir() 行,而不仅仅是抑制错误:

if(!is_dir($_SERVER{'DOCUMENT_ROOT'} . '/images' . $imageurlfolder)) {
   // Create the directory since it doesn't exist.
   mkdir($_SERVER{'DOCUMENT_ROOT'} . '/images' . $imageurlfolder, 0755, true);
}

【讨论】:

    【解决方案2】:

    您正在显示所有错误。对于此操作,我认为最简单的方法是尝试通过在 mkdir 前面添加“@”符号来创建文件夹并抑制错误消息:

    @mkdir($_SERVER{'DOCUMENT_ROOT'}.'/images'.$imageurlfolder);
    

    【讨论】:

      猜你喜欢
      • 2012-07-21
      • 2011-10-04
      • 2015-01-20
      • 1970-01-01
      • 2011-07-22
      • 2013-09-17
      • 2013-03-06
      • 2012-04-11
      • 2021-04-18
      相关资源
      最近更新 更多