apple
написал 15 марта 2009 года в 13:21 (2063 просмотра)
Ведет себя
неопределенно; открыл 19 тем в форуме, оставил 98 комментариев на сайте.
есть переменная $d . как проверить её? она должна содержать только буквы цифры и(или) точки.
Знаю что escapeshellarg() или escapeshellarg().
примеров нету.
Последние комментарии
-
OlegL, 17 декабря 2023 года в 15:00 →
Перекличка
21
-
REDkiy, 8 июня 2023 года в 9:09 →
Как «замокать» файл для юниттеста в Python?
2
-
fhunter, 29 ноября 2022 года в 2:09 →
Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt?
6
-
Иванн, 9 апреля 2022 года в 8:31 →
Ассоциация РАСПО провела первое учредительное собрание
1
-
Kiri11.ADV1, 7 марта 2021 года в 12:01 →
Логи catalina.out в TomCat 9 в формате JSON
1
DevOps as a Service from Palark
24/7 SRE & DevOps service to cover all your Kubernetes needs.

Советую познать силу регулярных выражений ;-)
if preg_match('/^[a-z0-9\.]+$/', $b) echo "Переменная в порядке"; else echo "Что-то не так...";я вот так сделал. работает.
$dom = escapeshellarg($dom);
спсб!
тему можно закрывать.
escapeshellarg() не проверяет значение переменной, а тупо экранирует в ней всякие кавычки — это не то…
escapeshellarg() так он не защищает от всяких подлых символов? типа пробелов и / ; «»
Ага, забыл, но суть не меняется.
escapeshellarg() добавляет в строку кавычки и/или «\» для того, чтобы «проблемные» символы корректно передались шеллу в system(). Это «защищает» от возможности подставить в system() произвольную строку, которая может привести к выполнению любых команд, но не «проверяет переменную».
Для проверки же переменной надо использовать регулярные выражения и выдавать ошибку, если введена некорректная строка.
P.S. Как понимаю, нужна проверка на домен, а для этого можно составить куда более умное выражение, чем просто проверка на наличие букв/цифр/точек…
домены с дефисом не пропускает.
чего исправить в проверке?
Заменить регулярное выражение на:
А лучше — сразу на что-нибудь, например, такое:
'/^([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9}$/'P.S. В гугле можно найти кучу регэкспов для проверки доменов. Последнее я как раз только что взял оттуда… (http://regexlib.com/DisplayPatterns.aspx)
Ооо, какой сайт! Спасибо! :)
не пропускает домены первого уровня например ru com итд
> не пропускает домены первого уровня например ru com итд
На заметку: Домены первого уровня — это .ru или .com, а не что-то.com.
Кроме того, это он однобуквенные не пропускает (x.org). А 2-буквенные — нормально (ya.ru). Можно исправить так:
'/^([0-9a-zA-Z][-\w]*[0-9a-zA-Z]?\.)+[a-zA-Z]{2,9}$/'я знаю что такое домен 1уровня.)
$b=preg_replace("/[*]/","<font color="/Blue/">\\1 aaaa</font>","$b");</font><font color=«/Blue/»>как окрасить строку выводящую * в синий цвет?</font>
<font color=«/Blue/»>этот пример окрашивает тольк аааа.</font>
> $b=preg_replace…
Ну, это уже финиш. Вы бы почитали для начала, как оно вообще работает. Выражение бредово по ряду причин… Вопрос поставлен плохо.
оно есть в примерах.
Здесь развернуто описано как проверить переменную на целое число: http://hashcode.ru/questions/153602/проверка-переменной-на-целое-число