Ещё вопрос: Какими символами обозначаются возврат каретки, табуляция и другие "пробельные символы"? Мне это нужно для поиска их в строке и внесения изменений.
Вид для печати
Ещё вопрос: Какими символами обозначаются возврат каретки, табуляция и другие "пробельные символы"? Мне это нужно для поиска их в строке и внесения изменений.
Неужели коды этих символов невозможно найти через гугл? ;)
А индексирвание, это да, примерно то что вы сказали, создание ключевых слов в данном случае по которым будет производится поиск.
Вопрос такой: Если я уничтожаю переменную, освобождается ли соответствующе место оперативной памяти?
Перефразирую твой вопрос: Освобождает ли unset() занимаемое переменной/объектом место в памяти.
Да, эта функция освобождает место в памяти. И как правило если ты используешь какие-то большие переменные в функции, лучше их уничтожать перед возвратом функции, так как хоть после возврата функции переменные уничтожаются автоматически, но память при этом не освобождается.
Массивы с кучей текста.
Думаю, следует после использования уничтожить.
Нижеследующее выражение идёт с ошибкой:[PHP]if (ereg ('^[a-zA-Z0-9_\-.]+',$s))[/PHP]Если убираю точку, всё получается. Но мне как раз эта точка нужна.
Попутный вопрос: может ли в части адреса до собаки встречаться точка?
[QUOTE=Прим Палвер;1838752]Попутный вопрос: может ли в части адреса до собаки встречаться точка?[/QUOTE]
может
[PHP]if (ereg ('^[a-zA-Z0-9_\-\.]+',$s))[/PHP]
может так?
[QUOTE=nighthunter;1838818]может[/QUOTE]А в последних двух символах (страна) цифры, подчёркивание, точка и дефис бывают?
С чего можно начинать адрес (первый символ)?
Что может быть в средней части?
[QUOTE=nighthunter;1838818][PHP]if (ereg ('^[a-zA-Z0-9_\-\.]+',$s))[/PHP]
может так?[/QUOTE]ТАк тоже не получилось. А вот если засунуть точку до подчёркивания, идёт на ура.
[url]http://karman.com.ua/_spisok_domenov_pervogo_urovnja_0_0_0_231_1.html[/url]
. точка означает совпадение с любым символом кроме newline
только не в квадратных скобках, где остаются спецсимволы: \^-
Так что там с адресами?
[B][email protected][/B]
Какие символы могут в ходить в a,b и c, с чего можно их начинать?
Короче, вот [URL="http://ulenspiegel.od.ua/?part=msg"]так[/URL] получилось.
что это? проверка регуляркой части мыла? почему бы тогда полностью не проверить? и кстати, чем preg_match неугодил?
[code] $pat = '/^[\w\-\.]+@[\w\-\.]+?\.[\w]+$/';
$mail = '[email protected]';
if (preg_match($pat,$mail)) {
print '1';
}[/code]
Да ладно, для чего существует regexlib.com ? Если не хватает умения или нет времени разбираться, почему бы не поискать там... Прим Палвер, вдруг знания какие почерпаешь.
в догонку [URL="http://ru.php.net/manual/ru/reference.pcre.pattern.syntax.php"]по регуляркам[/URL]
Я вот не понимаю, зачем перед точкой в квадратных скобках снова поставили черту.
Чем плохо вот следующее?[PHP]if (ereg('^[a-zA-Z]+[a-zA-Z0-9._\-]*@[a-zA-Z0-9_\-]+\.[a-zA-Z]+[a-zA-Z]+$',$email))[/PHP]Зачем усложнять?
[QUOTE=крыс;1841511]и кстати, чем preg_match неугодил?[/QUOTE]Чем не угодил [I][B]ereg[/B][/I]?
[QUOTE]Чем плохо вот следующее?[/QUOTE]
[email][email protected][/email] - не пройдет
да, можно без слеша, но
1. это не ошибка
2. экранировать спец символы - далеко не самая плохая привычка
мне с preg_match удобнее
[QUOTE=крыс;1843250][email][email protected][/email] - не пройдет[/QUOTE]Спасибо!
Теперь пройдёт.
Правда, пройдёт с ним и [email][email protected][/email], но не могу знать, сколько точек может быть в средней части. Да и кто не хочет - не напишет свой настоящий, это всего лишь для предотвращения ошибки.
[QUOTE=крыс;1843250][email][email protected][/email]да, можно без слеша, но
1. это не ошибка
2. экранировать спец символы - далеко не самая плохая привычка
мне с preg_match удобнее[/QUOTE]Если поставить точку перед скобкой:
- воспринимается как ошибка;
- со слешем не работает.
[QUOTE]Правда, пройдёт с ним и [email][email protected][/email][/QUOTE]
кстати да... лучше так, точку могут случайно продублировать
[code]/^[\w\-\.]+@([\w\-]+\.)+[\w]+$/[/code]
[QUOTE]Если поставить точку перед скобкой...[/QUOTE]
с preg_match???? у меня все работает
кстати, рекомендую сделать локально страничку _regexp.php, можете туда и ереги дописать - весьма облегчает тестирование регулярок
[php]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Регулярки</title>
</head>
<body>
<?php
$pat = "/((.*?)(\/\/)(.*?)\/)([^\/])*\.([^\/])*$/";
$rep = '\$1\$2';
$url = 'http://ua2.php.net/manual/ru/function.parse-url.php';
print preg_replace($pat, $rep, $url);
$pattern = isset($_POST['pattern']) ? $_POST['pattern'] : '';
$str = isset($_POST['str']) ? $_POST['str'] : '';
if ($pattern) {
//print $pattern;
print '<h2>preg_match_all</h2>';
$kvo = preg_match_all($pattern, $str, $matches1);
if($kvo){
print '<p>Найдены совпадения</p><pre>';
print_r($matches1);
print '</pre>';
} else {
print '<b>Совпадений нет</p>';
}
print '<h2>preg_match</h2>';
$kvo = preg_match($pattern, $str, $matches1);
if($kvo){
print '<p>Найдены совпадения</p><pre>';
print_r($matches1);
print '</pre>';
} else {
print '<b>Совпадений нет</p>';
}
}
?>
<form method="POST">
pattern: <input name="pattern" type="text" value="<?php print htmlspecialchars($pattern);?>" size="50"><br>
string: <input name="str" type="text" value="<?php print htmlspecialchars($str); ?>" size="50"><br>
<input type="submit">
</form>
</body>
</html>[/php]
[QUOTE]может ли в части адреса до собаки встречаться точка?[/QUOTE]
Кста, может еще и "+" встречаться.
[url]http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html[/url]
Как с русскими кодировками справляться?
Послал сам себе на яху сообщение с сайта - приходит в другой кодировке (нечитабельно).