繁体   English   中英

PHP copy()问题和特殊字符

[英]PHP copy() problems and special characters

我正在用户更新某些信息时复制某些文件。 但是,由于在专门命名windows文件时我们不能有任何特殊的任何特殊字符,是否存在具体的正则表达式? 发现的所有特殊字符将被下划线替换,以保持简单。

它取决于您要替换的特殊字符,但是例如替换所有非单词字符和-符号,您可以使用:

$new_value = preg_replace("/[^-\w]+/", "_", $original_value);

这将只留下-_az (也是大写)和0-9并用下划线替换其余部分。

最好的解决方案是使用像Slugify这样的“slugifier”,这将比正则表达式更安全和测试,因为它将适用于所有编码和奇怪的字符。

Slugify的一个小例子

use Cocur\Slugify\Slugify;

$slugify = new Slugify();//for iconv translit
echo $slugify->slugify('Hello World!'); // hello-world

另一个lib是从Django项目中urlify一个URLify.js的PHP端口:

echo URLify::filter ('фото.jpg', 60, "", true);
// "foto.jpg"

很容易使用,也许是最好的解决方案。

或者也许你可以使用这个备用类: https//github.com/mongator/behaviors/blob/master/src/Mongator/Behavior/Util/SluggableUtil.php

问候

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM