[问题] 用 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