|
|
|
| 4. Нужно вывести форму в которой пользователь вводит некую кл. фразу и следующий текст: "В кл. фразе Вы можете использовать специальные символы: '*' - заменяет любую комбинацию символов; '?' - заменяет один символ.
Таким образом на слово 'газ*' найдется 'газ', 'газета', 'газированный' и т.д. на 'баннер?' - 'баннера', 'баннеру', но не 'баннер' и 'баннерный'." После отправки формы нужно найти и вывести все записи из таблицы с 1 текстовым полем, содержащие кл. фразу по вышеописанному алгоритму.
подсказали:
можно просто сделать парсер, а можно поглумицо с LIKE )
а вот как это сделать? | |
|
|
|
|
|
|
|
для: deeeman
(18.02.2009 в 14:44)
| | Гдето так:
<?
$result = mysql_query('SELECT * FROM `tabname`');
while($row = mysql_fetch_array($result)){
$kluchevaya_fraza = str_replace('*', '(.*)', $kluchevaya_fraza);
$kluchevaya_fraza = str_replace('?', '(.?)', $kluchevaya_fraza);
if(preg_match('/^ '.$kluchevaya_fraza.' $/', $row['pole_poiska_v_BD'])){
echo $row['fignya_kakaya_nibut'];
}
}
|
Только обратите внимание на имена переменных и таблицы в БД, их надо заменить на подходящие.... | |
|
|
|
|
|
|
|
для: nikita2206
(18.02.2009 в 15:29)
| | Спасибоще!!!!
можно еще вопрос:
1. Написать php-функцию, определяющую, существует ли введенный посетителем email-адрес в действительности (имеется ввиду, зарегистрирован ли на каком-либо сервере e-mail, введенный пользователем). Критичными являются: время ожидания ответа, достоверность ответа.
у меня так:
<?
//синтаксис (стандартный но можно расширить его зная больше о доменнх именах).
function check_email ($email) {
if (!preg_match ("/^[-0-9a-z_\.]+@[-0-9a-z^\.]+\.[a-z]{2,4}$/i" , $email)){
return false;
}
return true;
}
//проверка на существование домена на win платформе (для UNIX используется checkdnsrr)
function checkdnsrr_win ($host, $recType = '') {
if (!empty ($host)) {
if ($recType == '') $recType = "MX";
exec ("nslookup -type=$recType $host",$output);
foreach ($output as $line) {
if(preg_match ("/^$host/", $line)) {
return true;
}
}
return false;
}
return false;
}
//инициализация проверки
function checkMail($email){
list ($username, $domain) = split ('@', $email);
if (!checkdnsrr_win($domain,'MX')) {
echo $domain . " нет такого домена или некорректный мэйл<br>" ;
return false;
}
//установливаем соединение с использованием стандартных портов
//тут есть сомнения:
//почтовый сервер может использовать нестандартный порт
//могли возникнуть проблемы с соединением хостинг-провайдера
if (!@fsockopen ($domain, 80, $errno, $errstr, 30)) {
echo $domain . " " . "не отвечает" . "<br>";
return false;
}
echo $domain . " " . "ответил" . "<br>";
}
//example
checkMail("diman@mail.ru");
checkMail("diman@il.ru");
checkMail("dimanmailru");
?>
|
но я думаю это неправильно работает | |
|
|
|