Консультация № 184823
17.12.2011, 12:17
65.08 руб.
0 6 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Создать 2 шаблона(c помощью регулярных выражений):
1.задающий все условия предъявляемые к названию переменных. (вводим в текстовом поле переменную)
2. для поиска в тексте гиперссылки.

С уважением и заранее большое спасибо.

Обсуждение

давно
Старший Модератор
312929
1973
17.12.2011, 21:09
общий
это ответ
Здравствуйте, Дроздов В.А.!

1. Если имеются в виду переменные PHP, то шаблон должен быть примерно таким: ereg('\$[A-Za-z_][0-9A-Za-z_]*', $p), где $p содержит название переменной. Правда, следует учесть, что PHP допускает в именах переменных символы с кодом от 127 до 255 (в том числе русские). Если предполагаются и русские буквы в названии переменной, то лучше использовать такой шаблон: ereg('\$[A-Za-z_А-Яа-я][0-9A-Za-z_А-Яа-я]*', $p).

2. Для поиска гиперссылок можно использовать такой шаблон: eregi('<a[^>]+href=["\'](.+)["\'][^>]+>([^<]+)<\/a>', $text, $regs), где $text - текст страницы, содержащий гиперссылки. В $regs[0] будет полный текст гиперссылки (вместе с тегами), в $regs[1] - адрес ссылки, в $regs[2] - текст ссылки (внутри тегов).
Неизвестный
17.12.2011, 22:08
общий
Адресаты:
1. что то у меня получается,постоянно false выводит.

<form action="index.php" method="get">
<input name="f" type="text" size="5" maxlength="25" />
</form>
<?
$p = $_GET['f'];
if (ereg("/\A\$[A-Za-z_\x7f-\xff][\w\x7f-\xff]*\z/", $p)) {
echo "Переменная, вроде, правильная";
}
else {
echo "Введите, батенька, переменную заново";
}
?>
Неизвестный
17.12.2011, 22:11
общий
Адресаты:
а лучше напишите код. чтоб понел, как по вашему должно быть.
давно
Старший Модератор
312929
1973
18.12.2011, 06:44
общий
Адресаты:
Судя по процедуре ereg, Вы используете расширение регулярных выражений POSIX, я же писал шаблоны для регулярных выражений PCRE (они пошире POSIX и не всегда с ними совместимы). Вариантов два:

1. Если есть поддержка PCRE (практически у всех версий PHP она есть), то просто замените ereg на preg_match и ereg_replace на preg_replace, и шаблоны заработают.

2. Если поддержки PCRE нет или требуется именно вариант с POSIX, тогда шаблоны нужно будет немного изменить. Сообщите мне, и я их переделаю.
Неизвестный
18.12.2011, 10:49
общий
18.12.2011, 22:58
Адресаты:
извините что сразу не уточнил в вопросе, но мне нужен вариант с POSIX.
И напишите сразу конкретный пример
с уважением!.
Неизвестный
19.12.2011, 16:14
общий
Адресаты:
можно уточнить,ссылка ищется в документе или в текстовом поле?
Форма ответа