[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Preg_match_all и сравнение
Страницы: 1, 2, 3
Frost-56
Такие вот ошибки понеслись:

Warning: file_put_contents(/text.txt) [function.file-put-contents]: failed to open stream: Permission denied in /memb.php on line 6

Warning: file(/notext.txt) [function.file]: failed to open stream: No such file or directory in /memb.php on line 10

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /memb.php on line 12

Warning: file(/text.txt) [function.file]: failed to open stream: No such file or directory in /memb.php on line 19

Warning: array_merge() [function.array-merge]: Argument #1 is not an array in /memb.php on line 21

Warning: array_unique() [function.array-unique]: The argument should be an array in /memb.php on line 22

Warning: implode() [function.implode]: Invalid arguments passed in /memb.php on line 23

Warning: file_put_contents(/text.txt) [function.file-put-contents]: failed to open stream: Permission denied in /memb.php on line 24

Warning: file(/notext.txt) [function.file]: failed to open stream: No such file or directory in /memb.php on line 10

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /memb.php on line 12

Warning: file(/text.txt) [function.file]: failed to open stream: No such file or directory in /memb.php on line 19

Warning: array_merge() [function.array-merge]: Argument #1 is not an array in /memb.php on line 21

Warning: array_unique() [function.array-unique]: The argument should be an array in /memb.php on line 22

Warning: implode() [function.implode]: Invalid arguments passed in /memb.php on line 23

Warning: file_put_contents(/text.txt) [function.file-put-contents]: failed to open stream: Permission denied in /memb.php on line 24
Valick
Frost-56, SQLite, ну или хотябы плоские файлы.
Что за маразматик вам поставил такую задачу? Я конечно могу написать скрипт с подобным функционалом (долго, нудно и дорого), но какой смысл махать "каменным топором".


_____________
Стимулятор ~yoomoney - 41001303250491
Frost-56
Цитата (Valick @ 7.04.2013 - 15:23)
Frost-56, SQLite, ну или хотябы плоские файлы.
Что за маразматик вам поставил такую задачу? Я конечно могу написать скрипт с подобным функционалом (долго, нудно и дорого), но какой смысл махать "каменным топором".

Ну вот такой вот человек, можно конечно попытаться уговорить через mysql, но я замучаюсь переписывать код....
Frost-56
От ошибок избавился, а вот ф-ция str_replace($nicknames, '', $match[1]); почему то не работает...
OleKh
$content = '<td class="userstop__username"><a href="#">name3</a></td>
<td class="userstop__username"><a href="#">name4</a></td>
<td class="userstop__username"><a href="#">name2</a></td>'
;

while(1){

if(preg_match_all('#<td class="userstop__username">.*>(.*)</a></td>#isU', $content, $match)){
$nicknames = file("notext.txt", FILE_IGNORE_NEW_LINES);//name name1 name2
$match[1] = array_diff(array_unique($match[1]), $nicknames);
file_put_contents("text.txt", implode("\r\n",$match[1]));//name3 name4
break;
}
else
break
;
}
inpost
Frost-56
я понимаю так, если кто-то к тебе обращается как к программисту, то он хочет получить профессиональный совет, а не банально выполнить задачу. Сразу говоришь, что написать надо так и так и всё.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Frost-56
Цитата (OleKh @ 7.04.2013 - 16:26)
$content = '<td class="userstop__username"><a href="#">name3</a></td>
<td class="userstop__username"><a href="#">name4</a></td>
<td class="userstop__username"><a href="#">name2</a></td>'
;

while(1){
   
    if(preg_match_all('#<td class="userstop__username">.*>(.*)</a></td>#isU', $content, $match)){
        $nicknames = file("notext.txt", FILE_IGNORE_NEW_LINES);//name name1 name2
        $match[1] = array_diff(array_unique($match[1]), $nicknames);
        file_put_contents("text.txt", implode("\r\n",$match[1]));//name3 name4
        break;
    }
    else
        break
;
}

Спасибо, работает, но опять не так как надо.
Скрипт ведь идет циклом по страницам и собирает ники проверяя в это же время каждый ник чтобы его не было в notext.txt

Не работает:

$i += 1;

Не бегает по страницам циклом. Можно ли это исправить как нибудь ?


<?php
set_time_limit(0);
$url = 'http://forum.kria.net/top.php?page=';
$i = 4459;
$content = file_get_contents($url . $i);
if(!file_exists("text.txt"))
file_put_contents("text.txt", '');

while(1){

if(preg_match_all('#<td class="userstop__username">.*>(.*)</a></td>#isU', $content, $match)){
$nicknames = file("notext.txt", FILE_IGNORE_NEW_LINES);
$match[1] = array_diff(array_unique($match[1]), $nicknames);
file_put_contents("text.txt", implode("\r\n",$match[1]));
sleep(5);
$i += 1;
break;
}
else
break
;
}
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.