PHP – альтернатива Filter_var?

Я построил 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, поэтому адрес электронной почты проверяется на подлинность и что в обоих полях не используется вредоносный код. Какие-нибудь советы?

Спасибо!

    для писем вы можете использовать Regex: (например: 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-]+)*(\.[az]{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>'; } ?> 

    Я надеюсь, что это помогает кому-то 🙂