![](/img/trans.png)
[英]Is there an alternative to the “filter_var” function in php when using HHVM?
[英]PHP - Filter_var alternative?
我構建了一個PHP腳本來輸出表單中發布的數據,但我遇到了一個問題。 該網站將運行的服務器運行PHP 5.1.6。 此版本的PHP不支持filter_var。
我需要在短期內(最好是昨天)知道一個替代方案,並且無法在Google或Stack Overflow上找到直接的內容。
Mayhap這里有人遇到了同樣的問題並且快速解決了我的問題?
這段代碼:
$email= filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$answer= filter_var($_POST['answer'], FILTER_SANITIZE_STRING);
需要與PHP 5.1.6兼容,因此在genuinity上檢查電子郵件地址,並且在任一字段中都不使用惡意代碼。 有小費嗎?
非常感謝!
對於電子郵件,您可以使用正則表達式:(例如: http : //www.totallyphp.co.uk/validate-an-email-address-using-regular-expressions )
對於字符串你也可以做正則表達式,但這有點太重了,所以如果你把它發送到數據庫可能是mysql_real_escape_string()
的組合,對於html你應該使用htmlentities()
:
http://de.php.net/manual/en/function.mysql-real-escape-string.php
http://www.php.net/manual/en/function.htmlentities.php
我不認為filter_var函數與僅僅使用這些方法有很大不同
您可以通過PECL將擴展安裝到PHP 5.1: http : //pecl.php.net/package/filter
使用我在前面的答案中給出的信息,這是我如何解決我的問題:
<?PHP // Retreive POST data and sanitize it: trim string, no HTML, plain text
$variable1=htmlentities(trim($_POST['input1']), ENT_NOQUOTES);
$variable2=htmlentities(trim($_POST['input2']), ENT_NOQUOTES);
$emailaddress=$_POST['email']; // sanitizing email address happens below
if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $emailadres)){ // check email address and if legit, do this:
echo '<p>The e-mail address given is valid.</p>'
} else{ // if email is not legit, do this:
echo '<p>The e-mail address given is not valid.</p>';
}
?>
我希望這可以幫助別人 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.