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 に答える