2011-04-22 72 views
1

替換字符串大家好,我知道了preg_replace可用於格式化字符串,但我需要幫助在有關地區我的網址會是這樣使用PHP的preg_replace

http://www.example.com/index.php/
也刪除HTTP,HTTPS,FTP .. ..sites也

我想要的是讓 結果作爲

example.com/index.php

+0

你抓取這些網址從DB? – 2011-04-22 10:49:05

+2

刪除協議很簡單。但是,爲什麼你想要刪除子域?這改變了URL。 – 2011-04-22 10:56:26

+0

真的需要刪除子域嗎?可以輸入變化它總是包含一個子域或有時網址沒有子域? – 2011-04-22 11:05:51

回答

1
echo preg_replace("~(([a-z]*[:](//))|(www.))~", '', "ftp://www.example.com"); 
+0

嗨,但https,http,ftp ....喜歡網站 – vishnu 2011-04-22 10:38:10

+0

@vishnu:現在檢查答案。它正在像上面一樣工作的所有組合。 「www」中是否有任何變體 – Gaurav 2011-04-22 11:03:51

0
$url = 'http://www.example.com/index.php/'; 
$strpos = strpos($url,'.'); 
$output = substr($url,$strpos+1); 
+0

url的輸入格式究竟是什麼?你的問題只有一個示例格式。 – psynnott 2011-04-22 10:55:16

+0

另外,你需要修剪/從最後(如果你想要由OP指定的格式)。 – kapa 2011-04-22 10:59:42

0
$parts=parse_url($url); 
unset($parts['scheme']); 
//echo http_build_url($parts); 
echo implode("",$parts); 

編輯

要使用http_build_url你需要pecl_http你可以用爆作爲備用

+0

應該指出的是,這需要'pecl_http'。 – 2011-04-22 10:57:30

+0

@Felix:是的,確實如此。 – 2011-04-22 10:59:10

0

像這樣的事情

$url = "http://www.example.com/index.php"; 
    $parts = parse_url($url); 
    unset($parts['scheme']); 

    echo preg_replace('/^((ww)[a-z\d][\x2E])/i', '', join('', $parts)); 

輸出

example.com/index.php

例2

$url = "http://ww3.nysif.com/Workers_Compensation.aspx"; 

輸出

nysif.com/Workers_Compensation.aspx