How do I remove http, https and slash from user input in php How do I remove http, https and slash from user input in php php php

How do I remove http, https and slash from user input in php


ereg_replace is now deprecated, so it is better to use:

$url = preg_replace("(^https?://)", "", $url );

This removes either http:// or https://


You should use an array of "disallowed" terms and use strpos and str_replace to dynamically remove them from the passed-in URL:

function remove_http($url) {   $disallowed = array('http://', 'https://');   foreach($disallowed as $d) {      if(strpos($url, $d) === 0) {         return str_replace($d, '', $url);      }   }   return $url;}


I'd suggest using the tools PHP gave you, have a look at parse_url.

<?php$url = 'http://username:password@hostname/path?arg=value#anchor';print_r(parse_url($url));echo parse_url($url, PHP_URL_PATH);?>

The above example will output:

Array(    [scheme] => http    [host] => hostname    [user] => username    [pass] => password    [path] => /path    [query] => arg=value    [fragment] => anchor)/path

It sounds like you're after at least host + path (add others as needed, e.g. query):

$parsed = parse_url('http://www.domain.com/topic/questions/');echo $parsed['host'], $parsed['path'];    > www.domain.com/topic/questions/

Cheers