从网址中删除特殊字符,但不删除其他语言字符 - php

我正在开发一个Web应用程序,人们可以用英语和其他语言发布文章(例如论坛)。为了从帖子标题创建漂亮的永久链接,我使用如下代码。

PHP:

$ln=preg_replace("/[^A-Za-z0-9[:space:]]/","",$name);
$ln = strtolower($ln);
$ln=str_replace(' ','-',$ln);

这会去除除字母和数字之外的所有字符。但是我也想保留其他语言的单词,例如中文或印地语。因此它不会将“ स्टैक ओवरफ्लो”剥离为“ ”。我找不到任何REGEX解决方案。

php参考方案

[^\p{L} 0-9]

\p{L} matches any kind of letter from any language
您可以尝试一下。这将保留其他语言的单词并删除特殊符号。请参见演示。

https://regex101.com/r/qH1uG3/8

$re = "/[^\\p{L} 0-9]/m";
$str = "@#\$#\$sadsadस्टैक ओवरफ्लो";
$subst = "";

$result = preg_replace($re, $subst, $str);

要么

[^\p{L}\p{Z}\p{N}\p{M}]

\p{L}匹配任何语言的任何字母
\p{Z}匹配任何类型的空格或不可见的分隔符
\p{N}与任何脚本中的任何数字字符匹配
\p{M}匹配要与之组合的字符

更确切地说,请参见演示。

https://regex101.com/r/qH1uG3/11

php:是否有充分的理由引用所有数组键/索引? - php

我正在遍历别人的代码,他们总是避免转义其数组键。例如:$ row_rsCatalogsItems [名称]代替$ row_rsCatalogsItems ['名称']因此,我不断地对自己接触的所有事物进行微小的更改,以应对这些惰性。但是现在我想知道这样做是否有很多好处。我得到它会在默认为字符串之前检查常量(我在处理常量时会讨厌php中的行为,因为即使未定义,…

验证php中的javascript对象 - php

在我的用户界面中,用户可以构建一些javascript对象,例如:var box = { "width": "100px", "height": "200px", "click": function () { alert("You clicked t…

将一个PHP对象发送到另一个PHP页面 - php

我想知道是否有一种方法可以将PHP对象发送到另一台计算机上的另一个PHP页面?例如-我实现了一个构造Trie的类。现在,在构造Trie之后,我想将对象发送到另一个PHP页面,以便它也可以访问该对象。可行的选择是将其包装到某种编码的JSON请求中,然后将其发送到可以使用jQuery将其中继到所需页面的页面吗?对不起,我对此绝对陌生!将感谢提供的任何帮助。干杯!…

在Codeigniter中以数组形式获取查询结果 - php

我有一个查询,如何获取结果作为数组? php大神给出的解决方案 像这样:$rs = $this->db->query(...); $array = $rs->result_array(); https://www.codeigniter.com/user_guide/database/results.html

PHP标头功能不起作用 - php

我曾经使用此功能从一个PHP页面重定向到另一个:header( 'Location: student.php?cnp='.$_REQUEST['name']) ; 在我的本地主机中,它确实可以工作,但是如果在Internet中对其进行测试,则不会重定向。我也尝试给出完整的路径(如http://.../student.p…