note 107890 deleted from function.parse-url by danbrown
| From: | danbrown@php.net | 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] =>
)