簡體   English   中英

Eregi中的星號

[英]Asterisk in eregi

//URL START
$urlregex = "^(https?|ftp)\:\/\/";
// USER AND PASS
$urlregex .= "([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?";
// HOSTNAME OR IP
$urlregex .= "[a-z0-9+\$_-]+(\.[a-z0-9+\$_-]+)*";
// PORT
$urlregex .= "(\:[0-9]{2,5})?";
// PATH
$urlregex .= "(\/([a-z0-9+\$_-]\.?)+)*\/?";
// GET Query
$urlregex .= "(\?[a-z+&\$_.-][a-z0-9;:@/&%=+\$_.-]*)?";
// ANCHOR
$urlregex .= "(#[a-z_.-][a-z0-9+\$_.-]*)?\$";
// check
if (eregi($urlregex, $url)) {echo "good";} else {echo "bad";}

但是如果我有http://www.example.com/about-me/my-4*-hotel/該怎么辦

由於星號,該eregi檢查無效。 我該怎么辦?

文檔中

自PHP 5.3.0起已棄用此功能。 強烈建議不要使用此功能。

使用帶有FILTER_VALIDATE_URL的filter_var代替。 或者,如果您堅持使用正則表達式,則使用preg_*

我認為您的問題出在URL,而不是正則表達式。 上次我檢查時,URL的路徑部分中不允許使用星號。 如果您確實需要一個星號,則應將其轉義:

http://www.example.com/about-me/my-4%2A-hotel/

您可以更改正則表達式以允許加星號...

$urlregex .= "(\/([a-z0-9+\$_*-].?)+)*\/?"; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM