1

我的客户要求验证用户输入的包含非拉丁字符的 URL。例子:

  • http://uk.wikipedia.org/wiki/Фотосинтез
  • http://презитент.рф

有没有人有一个正则表达式来验证这样的 URL?

或者 PHP 中有没有一种方法可以轻松地对非拉丁 URL 部分进行 URL 编码。例如:http://uk.wikipedia.org/wiki/Фотосинтез->http://uk.wikipedia.org/wiki/%D0%A4%D0%BE%D1%82%D0%BE%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7反之亦然?

这有什么意义吗?

非常感谢您的帮助。

4

1 回答 1

1

php.net警告说 parse_url “并不是为了验证给定的 URL,它只是将它分解成上面列出的部分。” 如果这是可以接受的,它似乎(或多或少)适用于非拉丁字符:

~ visitor$ cat parse.php 
<?php
$parsed = parse_url( 'http://uk.wikipedia.org/wiki/Фотосинтез' );
print_r( $parsed );
?>

~ visitor$ php parse.php 
Array
(
    [scheme] => http
    [host] => uk.wikipedia.org
    [path] => /wiki/Фо?_о?_ин?_ез
)
于 2012-06-26T17:26:19.680 回答