note 107890 deleted from function.parse-url by danbrown

From: Date: Thu, 10 May 2012 18:12:20 +0000
Subject: note 107890 deleted from function.parse-url by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-187735@lists.php.net to get a copy of this message
Note Submitter: Anonymous ---- Parsing ftp urls find port host path allowed password char "@" function parseFtpUrl($addres) { $addres = str_replace("ftp://", "", trim($addres)); if($addres=='') return false; $tmp = $addres; $tmp = explode("@", $tmp); $host_port = array_pop($tmp); print_r($host_port); if(eregi(":",$host_port)) { $host_port = explode(":", $host_port); $host = $host_port[0]; $port = $host_port[1]; if(eregi("/", $port)) { $port2 = explode("/",$port); $port = array_shift($port2); $path = implode("/", $port2); } } else { $host = $host_port; $port = 21; } $login_pass = implode("@", $tmp); $login_pass = explode(":", $login_pass); $pass = array_pop($login_pass); $login = implode("", $login_pass); $result['user'] = $login; $result['pass'] = $pass; $result['host'] = $host; $result['port'] = $port; $result['path'] = @$path; return $result; } example $urls[] = "ftp://login:p@@Sword@hozst.com:22/dfsdfdsfds/dfsd/index.php"; $urls[] = "ftp://login:paSSword@hozst.com"; $urls[] = "login:paSSword@hozst.com/rwerewre/ferfe/"; $urls[] = "login:paSSword@hozst.com"; foreach($urls as $addres ) { echo $addres."\n"; print_r(parseFtpUrl($addres)); echo "\n\n"; } RESULT ftp://login:p@@Sword@hozst.com:22/dfsdfdsfds/dfsd/index.php Array ( [user] => login [pass] => p@@Sword [host] => hozst.com [port] => 22 [path] => dfsdfdsfds/dfsd/index.php ) ftp://login:paSSword@hozst.com Array ( [user] => login [pass] => paSSword [host] => hozst.com [port] => 21 [path] => ) login:paSSword@hozst.com/rwerewre/ferfe/ Array ( [user] => login [pass] => paSSword [host] => hozst.com/rwerewre/ferfe/ [port] => 21 [path] => ) login:paSSword@hozst.com Array ( [user] => login [pass] => paSSword [host] => hozst.com [port] => 21 [path] => )

« previous php.notes (#187735) next »