【问题标题】:Reading image files in PHP with special characters在 PHP 中读取带有特殊字符的图像文件
【发布时间】:2014-12-04 21:15:03
【问题描述】:

我在 Godaddy 共享主机服务器上的多个文件夹中存储了数千张图像。我有一个带有指向这些图像的图像库的站点。我遇到的问题是,一大堆图像的名称包含特殊的西班牙字符(á、é、í、ó、ú、ñ)。

完整的文件名列表存储在 MySql 表中,因此画廊将查看图像以响应在 MySql 上进行的查询。换句话说,MySql 会根据查询结果来说明会打开哪些图像。

一切正常,除了使用此特殊字符存储的图像,它们不会显示,因为浏览器会查找具有某种编码的图像,并且不会匹配导致图像损坏的真实文件名。

有解决办法吗?我的意思是,重命名所有图像似乎是不可能的,因为太多了。

感谢任何帮助。

【问题讨论】:

  • 你使用的是 UTF-8,对吧?
  • 是的。在 MySql 和我的 PHP 页面上。
  • 阅读此内容并确保您正在执行列出的所有内容 ~ stackoverflow.com/questions/279170/utf-8-all-the-way-through
  • 除了普通的 utf8 而不是 utf8mb4 之外,我什么都有。我不认为这是问题不是吗?

标签: php mysql


【解决方案1】:

哦,这是一个常见的问题,伙计!我是巴西人,这里一直使用这些特殊字符。因此,您可以尝试通过 css 设置图像,而不是使用 img 标签来“解决”这个问题。

例如,假设您的图片名为“cão.png”,尺寸为 150x150:

<!-- in the HTML -->
<div class="img"></div>

/* in the CSS */
.img{
   width: 150px;
   height: 150px;
   background: url("cão.png") no-repeat;
}

希望对你有帮助:)

【讨论】:

  • 感谢您的回答,如果我使用的是静态图片库,我认为这会很棒,但我使用的是 Jquery 复杂库插件,它会根据用户响应动态变化。
  • hm...改变图像的生成方式有那么复杂吗?您可以更改此插件以创建
    而不是正在创建的内容,并将这些属性应用为样式规则。我知道,这是一项艰巨的工作,但它会奏效。
  • 感谢毛里西奥的回复。由于没有其他人回答并且编辑插件听起来太复杂(对我来说)我决定寻找下一个肮脏的选择:我找到了一个能够以非常强大的方式替换和重命名我的文件的 kickass 软件(批量重命名实用程序) .所以我删除了所有文件名并再次上传图片,在 MySql 上做同样的事情并重命名表中的所有数据,就完成了。我的问题消失了。从现在开始,每张图片上传都被强制保存为“普通”字符;)
  • 啊啊,很好!现在,没有特殊字符了,呵呵
猜你喜欢
相关资源
最近更新 更多
热门标签