[英]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.