Welcome Guest, Not a member yet? Register   Sign In
regex to eliminate port number from url
#3

Technically, this is a valid URL:
http://username:[email protected]=:40#:yes

So you are better off parsing it with PHP's parse_url function:



PHP Code:
<?php

$url 
'http://username:[email protected]:8080/one/two/three?legal=:40#:yes';

$parsed_url parse_url$url );

echo 
'<pre>';
print_r$parsed_url );
echo 
'</pre>';

function 
reassemble_without_port$parsed_url )
{
    $url '';

    if( isset( $parsed_url['scheme'] ) )
        $url .= $parsed_url['scheme'] . '://';

    if( isset( $parsed_url['user'], $parsed_url['pass'] ) )
        $url .= $parsed_url['user'] . ':' $parsed_url['pass'] . '@';

    $url .= $parsed_url['host'];

    if( isset( $parsed_url['path'] ) )
        $url .= $parsed_url['path'];

    if( isset( $parsed_url['query'] ) )
        $url .= '?' $parsed_url['query'];

    if( isset( $parsed_url['fragment'] ) )
        $url .= '#' $parsed_url['fragment'];

    return $url;
}

echo 
reassemble_without_port$parsed_url ); 
Reply


Messages In This Thread
RE: regex to eliminate port number from url - by skunkbad - 06-15-2017, 09:07 AM



Theme © iAndrew 2016 - Forum software by © MyBB