PHP error function.imagejpeg

PHP error function.imagejpeg,php,Php,基本上,我在开发一个脚本时遇到了问题。问题是,它希望创建一个文件夹,其中包含8位文本,最后是“999个字母Ⅱ”,即2 imagejpeg() [<a href='function.imagepng'>function.imagejpeg</a>]: Unable to open 'cache/album/ninety-ninenightsⅡ/na.jpeg' for writing: No such file or directory in /home/****/pub

基本上,我在开发一个脚本时遇到了问题。问题是,它希望创建一个文件夹,其中包含8位文本,最后是“999个字母Ⅱ”,即2

imagejpeg() [<a href='function.imagepng'>function.imagejpeg</a>]:
Unable to open 'cache/album/ninety-ninenightsⅡ/na.jpeg' for writing: 
No such file or directory in /home/****/public_html/card.php on line 113

<!-- language: lang-php -->
imagejpeg()[]:
无法打开“cache/album/990 nineightsⅡ/na.jpeg”进行写入:
第113行的/home/**/public_html/card.php中没有此类文件或目录

您对UTF-8的
角色有问题。
str.*
php函数系列都是拉丁文1,因此您的角色将被转换为垃圾

将代码替换为:

$file = 'cache/album/' . mb_strtolower(preg_replace('|\s|u', '', $asdfgh['Title']), 'UTF-8') . '.jpg';
if (!file_exists($file))
{                              
    $gasd = imagecreatefromjpeg($asdfgh['Pictures']['Tile32px']);
注意在
imagepng
上也要使用$file


您真的应该使用逻辑变量名,当您在几个月/几年后返回该代码时,你会遇到真正的麻烦。

调用imagepng的地方在哪里?添加了更多信息//基本上是通过json抓取信息,然后用这些信息创建图像,这就是它要求我通过erros创建的。你可以做的最简单和安全的事情是从文件名中删除非字母数字/下划线字符。不是吗?也许吧,但我甚至试着用stru_replace替换,但似乎不起作用。只是很难创建这个1文件夹loluse preg_replace,正如我所说的
str_*
函数族不能使用utf字符。这很简单:
preg\u replace(“/”.preg\u quote($to\u find)。“/u”,$replace\u with,$subject)非常感谢,我刚刚删除了您当前的代码并添加了一些额外的
。mb_strtolower(preg_replace('/[^(\x20-\x7F)]*/','',
我还添加了正确的名称:)感谢您的帮助,并为您的答案添加了+1