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

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

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

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Проверка строки в файле
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


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

> Без описания
scar
Отправлено: 14 Марта, 2008 - 09:01:49
Post Id



Include


Покинул форум
Сообщений всего: 278
Дата рег-ции: Июль 2007  
Откуда: Киев

Карма 0




Здраствуйте! Нужна Ваша помощь.
Есть файл в который записываются адреса сайтов при регистрации их в каталоге.
Мне надо сделать так, что бы при повторной попытки добавить сайт в каталог (сайт уже зарегистрирован в каталоге), 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 и т.д. Радость

Заранее спасибо!

(Отредактировано автором: 21 Марта, 2008 - 15:11:27)

 
 Top
Furax
Отправлено: 14 Марта, 2008 - 11:47:42
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




scar
Лучше функцией file() считай файл в массив и функцией array_search() проверить наличие значения в массиве:
CODE:
$data = file('file.txt');
if (array_search($string, $data))
die('Уже в каталоге!');
 
 Top
scar
Отправлено: 14 Марта, 2008 - 12:40:02
Post Id



Include


Покинул форум
Сообщений всего: 278
Дата рег-ции: Июль 2007  
Откуда: Киев

Карма 0




Все работает!
Огромнешее Вам спасибо! Улыбка
 
 Top
scar
Отправлено: 21 Марта, 2008 - 15:09:58
Post Id



Include


Покинул форум
Сообщений всего: 278
Дата рег-ции: Июль 2007  
Откуда: Киев

Карма 0




Теперь нашлась другая проблема. Хм

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



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




scar

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

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

?>

(Отредактировано автором: 23 Марта, 2008 - 00:36:37)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 3 (гостей: 3, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


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

[Script Execution time: 0.0406]     [ 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