note 104726 added to function.parse-url

From: Date: Mon, 04 Jul 2011 05:54:04 +0000
Subject: note 104726 added to function.parse-url
Groups: php.notes 
Request: Send a blank email to php-notes+get-181213@lists.php.net to get a copy of this message
Lengthy function to correct (mainly user-submitted) URLs. <?php function correctURL($address) { if (!empty($address) AND $address{0} != '#' AND strpos(strtolower($address), 'mailto:') === FALSE AND strpos(strtolower($address), 'javascript:') === FALSE) { $address = explode('/', $address); $keys = array_keys($address, '..'); foreach($keys AS $keypos => $key) array_splice($address, $key - ($keypos * 2 + 1), 2); $address = implode('/', $address); $address = str_replace('./', '', $address); $scheme = parse_url($address); if (empty($scheme['scheme'])) $address = 'http://' . $address; $parts = parse_url($address); $address = strtolower($parts['scheme']) . '://'; if (!empty($parts['user'])) { $address .= $parts['user']; if (!empty($parts['pass'])) $address .= ':' . $parts['pass']; $address .= '@'; } if (!empty($parts['host'])) { $host = str_replace(',', '.', strtolower($parts['host'])); if (strpos(ltrim($host, 'www.'), '.') === FALSE) $host .= '.com'; $address .= $host; } if (!empty($parts['port'])) $address .= ':' . $parts['port']; $address .= '/'; if (!empty($parts['path'])) { $path = trim($parts['path'], ' /\\'); if (!empty($path) AND strpos($path, '.') === FALSE) $path .= '/'; $address .= $path; } if (!empty($parts['query'])) $address .= '?' . $parts['query']; return $address; } else return FALSE; } ?> ---- Server IP: 69.147.83.197 Probable Submitter: 173.171.151.187 ---- Manual Page -- http://www.php.net/manual/en/function.parse-url.php Edit -- https://master.php.net/note/edit/104726 Del: integrated -- https://master.php.net/note/delete/104726/integrated Del: useless -- https://master.php.net/note/delete/104726/useless Del: bad code -- https://master.php.net/note/delete/104726/bad+code Del: spam -- https://master.php.net/note/delete/104726/spam Del: non-english -- https://master.php.net/note/delete/104726/non-english Del: in docs -- https://master.php.net/note/delete/104726/in+docs Del: other reasons-- https://master.php.net/note/delete/104726 Reject -- https://master.php.net/note/reject/104726 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#181213) next »