note 107890 added to function.parse-url
| From: | Anonymous | Date: | Tue, 13 Mar 2012 13:35:04 +0000 |
| Subject: | note 107890 added to function.parse-url | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-186627@lists.php.net to get a copy of this message | ||
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] =>
)
----
Server IP: 69.147.83.197
Probable Submitter: 178.177.64.245
----
Manual Page -- http://www.php.net/manual/en/function.parse-url.php
Edit -- https://master.php.net/note/edit/107890
Del: integrated -- https://master.php.net/note/delete/107890/integrated
Del: useless -- https://master.php.net/note/delete/107890/useless
Del: bad code -- https://master.php.net/note/delete/107890/bad+code
Del: spam -- https://master.php.net/note/delete/107890/spam
Del: non-english -- https://master.php.net/note/delete/107890/non-english
Del: in docs -- https://master.php.net/note/delete/107890/in+docs
Del: other reasons-- https://master.php.net/note/delete/107890
Reject -- https://master.php.net/note/reject/107890
Search -- https://master.php.net/manage/user-notes.php