[問題] 用 preg_match 找出網址的部分

作者: woominin (沒事就好)   2014-10-05 13:24:55
php
看了一下網路的範例照著做了一下
$url_array = array();
$url_array[] = 'http://taitung.taitungminsu.com.tw/bnb/holiday.htm';
$url_array[] = '../ok.htm';
$url_array[] = 'http://taitung.taitungminsu.com.tw/bnb/mary.htm';
$url_array[] = 'http://taitung.taitungminsu.com.tw/bnb/gdws.htm';
foreach ($url_array as $url_value) {
preg_match('@^(?:http://)?([^/]+)@i',$url_value, $matches);
$host = $matches[0].'';
echo $host."<br ./>";
}
這樣印出來會是
http://taitung.taitungminsu.com.tw
..
http://taitung.taitungminsu.com.tw
http://taitung.taitungminsu.com.tw
這個 ../ok.htm 會留下 前面的 ..
要怎麼修改,讓這個 ../ok.htm 不會出來呢 ??
作者: s25g5d4 (function(){})()   2014-10-05 17:00:00
@^(?:http://)? << 把最後的 ? 拿掉就好了
作者: woominin (沒事就好)   2014-10-05 22:12:00
'@^(?:http://)([^/]+)@i' 變這樣 ? 這樣會有錯
作者: s25g5d4 (function(){})()   2014-10-06 03:30:00
會抓到 wrong case?
作者: jenesis (ゼネシス)   2014-10-06 22:13:00

Links booklink

Contact Us: admin [ a t ] ucptt.com