Strict Standards: Resource ID#28 used as offset, casting to integer (28) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#30 used as offset, casting to integer (30) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#31 used as offset, casting to integer (31) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Проверка строки в файле
ТвойWeb » WebMaster класс » PHP/Perl » Проверка строки в файле

Страниц (1): [1]
 

1. scar - 14 Марта, 2008 - 09:01:49 - перейти к сообщению
Здраствуйте! Нужна Ваша помощь.
Есть файл в который записываются адреса сайтов при регистрации их в каталоге.
Мне надо сделать так, что бы при повторной попытки добавить сайт в каталог (сайт уже зарегистрирован в каталоге), PHP открывал файл с сайтами и искал наличие адресса этого сайта. Если сайт найден то все строки стераются и выскативает сообщение типа такого: "Ваш сайт уже зарегистрирован в каталоге!".

Вот мои попытки:

CODE:
$new_site = "./site.txt";


if(!($fp_new = fopen($new_site, "r"))){
die("$new_site");
}
$new_site_search = (int) fread($fp_new, 20);
fclose($fp_new);



if (ereg($site, $fp_new, $trashed)){
$new_site_search = "";
$mail = "";
$add = "";
echo "<center><b><font color=red>Ваш сайт уже зарегистрирован в нашем каталоге!</font></b></center>";
}


$new_site_search = "$http" . "$site";


$fp_new = fopen($new_site, "a+");
fwrite($fp_new, "\r\n".$new_site_search);
fclose($fp_new);


Это только один модуль! Так что не обращайте внимание на переменные $new_site_search, $mail, $add и т.д. Радость

Заранее спасибо!
2. Furax - 14 Марта, 2008 - 11:47:42 - перейти к сообщению
scar
Лучше функцией file() считай файл в массив и функцией array_search() проверить наличие значения в массиве:
CODE:
$data = file('file.txt');
if (array_search($string, $data))
die('Уже в каталоге!');
3. scar - 14 Марта, 2008 - 12:40:02 - перейти к сообщению
Все работает!
Огромнешее Вам спасибо! Улыбка
4. scar - 21 Марта, 2008 - 15:09:58 - перейти к сообщению
Теперь нашлась другая проблема. Хм

Код проверяет последнюю запись в файле, а не прочесывает весь файл и ищет указаный текст. Огорчение
5. Furax - 23 Марта, 2008 - 00:35:36 - перейти к сообщению
scar

Оказалось, что функция file() хотя и разбивает файл на строки, но символы перевода строки (\r\n) остаются в строках, кроме последней (потому что в ней этих символов и нет). Надо их убрать из строк массива, например, применив ко всему массиву функцию trim():
CODE:
<?php

$data = file('file.txt');
$data = array_map('trim', $data);
if (array_search('ыыы', $data) !== false)
die('Уже в каталоге!');

?>

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0381]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33