PHP奇怪的图片文件名

时间:2017-11-30 11:48:47

标签: php

我在php中有这个功能:

foreach($rss->channel->item as $item) {
    /* Poster */
    if (!file_exists('./img/'.$item->orignaziv.' ('.$item->godina.').jpg')) {

      $remote_file = $item->plakat;
      $new_width = 117;
      $new_height = 168;
      list($width, $height) = getimagesize($remote_file);
      $image_p = imagecreatetruecolor($new_width, $new_height);
      $image = imagecreatefromjpeg($remote_file);
      imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
      header('Content-Type: image/jpeg');
      imagejpeg($image_p, './img/'.ucfirst($item->orignaziv).' ('.$item->godina.').jpg', 100);
      imagedestroy($image_p);
    }

如果海报名称是例如:

Poster's Name

当照片保存到我的硬盘时我得到了:

Poster’s Name

如何使用'?

将字符编码显示为原始图片文件名

1 个答案:

答案 0 :(得分:0)

我通过转换特殊字符来解决这个问题。进入html权限然后字符串替换为none以便删除...我知道我应该使用更简单和干净的代码,如preg_replace_all删除所有非标准字符,但这有效......

$item->orignaziv = str_replace('’', '', mb_convert_encoding($item->orignaziv, 'HTML-ENTITIES', "UTF-8"));

这样,如果我把''它被删除所有特殊字符,但如果我把' \''它得到文件名'在名称中这一切都有效。