【问题标题】:How do I get my php file to read these images correctly?如何让我的 php 文件正确读取这些图像?
【发布时间】:2019-04-18 23:01:30
【问题描述】:

我已经创建了这个来获取我在一个目录中的几个图像的大小....

$image = file_get_contents("$fileLocation");
$source = imagecreatefromstring($image);

$width = imagesx($source);
$height = imagesy($source);
echo "   width : ", $width, " $nbsp; height : ", $height, 

当它到达一个名称中包含空格的图像时,它会给我一个错误....

警告:imagecreatefromstring():数据不是可识别的格式 在第 23 行的 /setupdb.php 中

警告:imagesx() 期望参数 1 是资源,给定的布尔值 在第 25 行的 /setupdb.php 中

警告:imagesy() 期望参数 1 是资源,给定的布尔值 在第 26 行的 /setupdb.php 中

我需要添加什么才能更好地阅读它们?

【问题讨论】:

    标签: php image


    【解决方案1】:

    该错误与文件名中的空格无关,而是与无法识别的图像格式有关。对于支持的图像格式,带有空格的文件名可以正常工作,不会出现错误或警告(除非您没有正确读取它们并填写到变量 $fileLocation 但代码中缺少该部分!)。 您可以通过运行var_dump(gd_info()); 来检查您的 php 安装支持的图像格式。

    我建议像这样更改您的代码,以识别您目录中不支持图像的所有文件:

    $image = file_get_contents("$fileLocation");
    $source = imagecreatefromstring($image);
    
    if ($source){
        $width = imagesx($source);
        $height = imagesy($source);
        echo "width : " . $width . " height : ". $height;
    } else {
        echo $fileLocation . " is not a recognized image format";
    }
    

    【讨论】:

    • 一旦我添加了 str_replace(" ", '%20', $images[$x]);它奏效了。
    • 很好,但是$images[$x] 是什么?那部分代码不在您的问题中:-)。因此,您没有将文件正确读取到$fileLocation 的假设似乎是正确的。无论如何,你解决了你的问题,这对你有好处。
    • 抱歉,我将所有图像位置放在一个数组中,$x 只是一个计数器。我已经完成了我程序的这一部分。我被困在另一部分。谢谢
    猜你喜欢
    • 2020-06-03
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多