is_dir如何检查目录是否存在避免错误消息

时间:2011-05-17 22:56:52

标签: php regex

我想我错过了下面的代码...也许你可以帮忙

<?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]:   文件存在于   /家/的Game1 /的public_html /包括

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

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

2 个答案:

答案 0 :(得分:3)

如果目录不存在,则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);
}

答案 1 :(得分:2)

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

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