我最近将一个网站迁移到了Drupal。一些旧页面标题包含像what's
这样的单词中的撇号。
在进行此迁移时,我们更改了大量网址,以简化网站布局并使网址更直观。
我正在尝试设置一个转发系统来捕获旧网址的请求,然后将用户重定向到新网址,该网址基于新网页的标题。
除了在其标题中包含撇号的页面之外,这非常有效,因为Drupal在它创建的URL中编码这些curlies,但是我的转发器删除了它们,我需要阻止它这样做!
目前,我使用以下表达式清理页面标题:
/[^a-z\-\d]+/i
(带有preg_replace)
...用连字符(-
)代替任何非标准字符和空格。
我意识到卷曲撇号的编码方式不同,因此被这个表达式捕获并删除。
如何通知我的正则表达式忽略撇号并不将它们变成连字符?
答案 0 :(得分:0)
您可能会发现使用filters有用。
$var="http://www.w3s'choo��ls.co�m";
var_dump(filter_var($var, FILTER_SANITIZE_URL));
$var
会保留" ' "性格,但消毒无效的。