答案 1
是的,有!使用filter_var
:
if (filter_var($url, FILTER_VALIDATE_URL) !== false) ...
FILTER_VALIDATE_URL
根据 RFC 2396 验证 URL。
答案 2
好吧,如果我们看一下RFC 3986,我们可以找到URL的定义。
如果我们看一下附录B,有一个使用正则表达式解析URL的指南:
附录 B. 使用正则表达式分析 URI 引用
由于“首次匹配获胜”算法与 POSIX 正则表达式使用的“贪婪”
消歧义方法相同,因此使用正则表达式来解析 URI 引用
的潜在五个组件是
自然而常见的。以下行是用于将格式
正确的 URI 引用分解为其组件的正则表达式。^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))? 12 3 4 5 6 7 8 9
上面第二行中的数字只是为了提高可读性;它们指示每个子表达式的参考点(即,每个成对的括号)。我们将与子表达式匹配的值称为 $。例如,将上述表达式与
http://www.ics.uci.edu/pub/ietf/uri/#Related
导致以下子表达式匹配:
$1 = http: $2 = http $3 = //www.ics.uci.edu $4 = www.ics.uci.edu $5 = /pub/ietf/uri/ $6 = <undefined> $7 = <undefined> $8 = #Related $9 = Related
其中,指示组件不存在,如上例中查询组件的情况。因此,我们可以将五个分量的值确定为
scheme = $2 authority = $4 path = $5 query = $7 fragment = $9
相反,我们可以使用第 5.3 节的算法从其组件重新创建 URI 引用。
您可以使用此正则表达式手动解析URL,或使用在PHP 4和5中可用的内置parse_url函数
推荐
-
相当于Java中PHP的crypt函数 我正在将我的PHP代码迁移到Google App Engine - Java。因此,我需要一个相当于Java中PHP的crypt函数,因为我已将使用crypt的注册用户的所有密码存储在我的数据库中。 编辑1:这是我用于加密密码的php
-
需要有关如何从接受语言请求标头获取首选语言的示例 我需要一个代码示例或库来解析标头并返回我的首选语言。 指出: “接受语言请求标头”字段类似于“接受”,但限制首选作为请求响应的自然语言集。语言标记在第 3.10 节中定义。
-
无法在 Java 和 PHP 之间交换使用 AES-256 加密的数据 我的问题是:我在Java中加密的东西,我可以在Java中完全解密,但PHP不能解密。我用加密的内容可以使用 解密,但不能在 Java 中解密。 我想从Java应用程序发送和接收加密数据到PHP页面,所以我
-
-
Quercus是Java环境中PHP的可行替代品吗? 对于任何偶然发现这个问题的人,他们不知道是什么 - 它是用Java完成的PHP的实现。 对于我目前正在从事的项目,我们通过cgi在servlet上提供php页面(我知道它很笨拙,但这是支持遗留代码的要求
标签