Помогите, пожалуйста, разобраться. Необходимо написать скрипт для вк, предполагаемый алгоритм его действий таков: Авторизация, Переход на публичную страницу (на стене страницы - треки), Фильтрация из кода страницы первых 70ти названий треков и их значений "мне нравится", Сортировка на убывание по значению "мне нравится", Запись этого всего построчно в файл, в виде: На странице выводится по 10 сообщений, для отображения следующих 10ти, используется JS: Code: wall.showMore(10); -------- Код на данный момент: PHP: <?php //Авторизация $mail = "мыло"; $pass = "пасс"; } $res = connect("http://login.vk.com/?act=login&email=$mail&pass=$pass&vk="); $sid = grabb($res, "value='", "'"); $res = connect("http://vkontakte.ru/login.php?op=slogin&redirect...=$sid"); $cookie = 'remixchk=5; remixsid='.grabb($res, 'remixsid=', ';'); function connect($link, $cookie=null){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$link); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT, 0); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_COOKIE, $cookie); $otvet = curl_exec($ch); curl_close($ch); return $otvet; } //Переход на страницу $res = connect ("http://vkontakte.ru/public********", $cookie); ?> Все, пока что на этом тупик. Подскажите, как лучше сделать дальше, как лучше грабить инфу, регуляркой или strpos/substr, и как это реализовать? Привожу кусок кода, для наглядности, с одной оценкой (мне нравится) трека: Code: <div class="like_wrap fl_r" onmouseover="wall.likeOver('-11111111_685')" onmouseout="wall.likeOut('-11111111_685')" onclick="wall.like('-25834005_685', '1b381637c4da5a700b'); event.cancelBubble = true;"> <span class="like_link fl_l" id="like_link-11111111_685">Мне нравится</span> <div class=" fl_l" id="like_icon-11111111_685"></div> <span class="like_count fl_l" id="like_count-11111111_[B][COLOR=DarkRed]***[/COLOR][/B]">[B][COLOR=DarkRed]6[/COLOR][/B]</span> Собственно 6 - и есть оценка, которую надо выдрать, *** - динамические цифры
Вопрос как сдела замену текста к примеру только 3 раза ? К примеру во всем предложениее встречаеться 100500 раз слово "привет" мне неужно заменить его только 3 раза как это сделать :? Я просто не пойму как ставить лимит... т.е какой функцией
Adio, PHP: <?php $str = "привет привет привет привет привет привет"; $replace = preg_replace("#привет#", "пока", $str, $limit = 3); echo $replace; ?>
Не столь селен, кто сможет совместить работу двух отдельных скриптов, я нашел одно и второе, а как совместить не знаю. Первый скрипт Шифрование емайла Code: $email = '[email protected]'; $url = 'mailto:[email protected]'; $safe_email=$safe_url=''; for($i=0; $i<strlen($email); $i++){ $safe_email .= '&#'.ord($email{$i}).';'; } for($i=0; $i<strlen($url); $i++){ $safe_url .= '&#'.ord($url{$i}).';'; } print "<a href='$safe_url'>$safe_email</a>"; Второй код ( Нахождение 3 типов емайлов, как я понял, и заключение их в теги mailto) Code: $str_t = "<a href=\"#\">[email protected]</a> <br> [email protected] <br> <a href=\"mailto:[email protected]\">[email protected]</a><br>"; $email_pattern = '[a-z0-9_.-]+@[a-z0-9.-]+\.[a-z]{2,4}'; $pattern = "!(?:<a\s+href\s*=\s*\"[^\"]\">($email_pattern)</a>|<a\s+href\s*=\s*\"mailto:($email_pattern)\">[^<]+</a>|($email_pattern))!is"; $replacement = '<a href="mailto:$1$2$3">$1$2$3</a>'; $emails = preg_replace($pattern, $replacement, $str_t); echo $emails; Цель этого всего, найти на страницах в которых есть текстовые емайлы без тегов, и заменить их тегами с шифрованием как в 1 скрипте. Как это совместить ? +++++ Буду благодарен. - бо спаммеры сабаки задалбали уже Нужно сегодня вечером - ночью пишем в личку - будет возможность заплатить вм
Есть у кого идеи по выявлению дублирующих частей в нескольких разных текстах? Дело в том, что в базе имеется несколько сотен текстов, которые содержат дублирующие части (как правило это предложения, блок текста итд). Части эти как правило в начале либо в конце. В перспективе дублирующие части будут удаляться, с этим проблем нет) Нужно выявить. Подкиньте идейку пожалуйста.
Варианты: 1) Вставить минимальный размер дублирующей части. Разделять текст по этим частям через каждый символ. При нахождении совпадения пробовать добавить к этому совпадению еще один символ и сравнивать пока совпадение не исчезнет. Потом удалять 2) Разделить текст на отдельные части (По 5 допустим). Расчитать % совпадения. Потом методом перебора отсеивать не дублированые части Код займет ~300 символов
PHP: $str_t = "тут у нас имейлы или страница с имейлами"; $email_pattern = '[a-z0-9_.-]+@[a-z0-9.-]+\.[a-z]{2,4}'; $pattern = "!(?:<a\s+href\s*=\s*\"[^\"]\">($email_pattern)</a>|<a\s+href\s*=\s*\"mailto:($email_pattern)\">[^<]+</a>|($email_pattern))!is"; $email = "$1$2$3"; $url = "mailto:$1$2$3"; $safe_email=$safe_url=''; for($i=0; $i<strlen($email); $i++){ $safe_email .= '&#'.ord($email{$i}).';'; } for($i=0; $i<strlen($url); $i++){ $safe_url .= '&#'.ord($url{$i}).';'; } $replacement = "<a href='$safe_url'>$safe_email</a>"; $emails = preg_replace($pattern, $replacement, $str_t); echo $emails; держи
PHP: <?php //Авторизация $mail = "мыло"; $pass = "пасс"; } $res = connect("http://login.vk.com/?act=login&email=$mail&pass=$pass&vk="); $sid = grabb($res, "value='", "'"); $res = connect("http://vkontakte.ru/login.php?op=slogin&redirect...=$sid"); $cookie = 'remixchk=5; remixsid='.grabb($res, 'remixsid=', ';'); function connect($link, $cookie=null){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$link); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT, 0); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_COOKIE, $cookie); $otvet = curl_exec($ch); curl_close($ch); return $otvet; } //Переход на страницу $res = connect ("http://vkontakte.ru/public********", $cookie); $res = preg_match_all("|<span class=\"like_count fl_l\" id=\"like_count-11111111_\d\d\d\">(.*)<\/span>|", $res); print_r($res); ?> вроде правильно. если не получится - я покопаюсь в регулярке, но ход мыслей примерно такой. на работу не проверял. Пиши в ПМ если что. Просто у меня всегда возникали проблемы с регулярками.
Всем доброго времени суток! Сразу скажу, что только начал заниматься сайтостроением, так что не пинайте сильно)) Вообщем-то взял тест хостинг, закинул туда оболочку сайта и нужные мне скрипты Как настроить скрипт так, чтобы он работал постоянно? Хостинг 1gb.ru В инструкции к срипту было написано: - проследить чтобы были установлены настройки сервера для работы с CURL неограниченное время ( в php.ini max_execution_time=0, max_input_time=0 ) Где этот php.ini?) Заранее спасибо
Если на Линуксе то /etc/conf.d/php/ - в этой папке. Если Windows то по стандартному адресу. У вас скорее всего линукс.
У него скорее всего шаред хостинг и никто ему не позволит поменять настройки. Разве что постараються и сделают под твой акк выделенные, что бывает крайне редко. Поставь set_time_limit(0); и ignore_user_abort(true);
А от сайта где находится это я от туда рекламу просто хочу убрать типо этого у вас не прав доступа и сбоку реклама торчит как её убрать ?
Спасибо, но оно не корректно работает. В плане вот что мне выдает text hereeeeeeeeeeeeeeeeeeeeeee $1$2$3 $1$2$3 шифруеться но емайла нет.. Вообщем сурс Code: text hereeeeeeeeeeeeeeeeeeeeeee <a href='mailto:$1$2$3'>$1$2$3</a>
А так: PHP: $str_t = "тут у нас имейлы или страница с имейлами"; $email_pattern = '[a-z0-9_.-]+@[a-z0-9.-]+\.[a-z]{2,4}'; $pattern = "!(?:<a\s+href\s*=\s*\"[^\"]\">($email_pattern)</a>|<a\s+href\s*=\s*\"mailto:($email_pattern)\">[^<]+</a>|($email_pattern))!is"; function rep2($1,$2,$3) { $email = $1.$2.$3; $url = "mailto:".$1.$2.$3; $safe[0]=$safe[1]=''; for($i=0; $i<strlen($email); $i++){ $safe[0] .= '&#'.ord($email{$i}).';'; } for($i=0; $i<strlen($url); $i++){ $safe[1] .= '&#'.ord($url{$i}).';'; } $replacement = "<a href='$safe[1]'>$safe[0]</a>"; return $replacement; } $emails = preg_replace($pattern, rep2($1,$2,$3), $str_t); echo $emails;
Жалуеться... Parse error: syntax error, unexpected T_DNUMBER, expecting T_VARIABLE or '$' in Z:\home\test1.ru\www\\emailprotect.php on line 34
Изменил предыдущий пост. Я сейчас туплю маленько. Уже понял в чем ошибка была) Я вообще забыл что там не передается заранее переменная и она существует лишь в preg_replace
Parse error: syntax error, unexpected '$', expecting '&' or T_VARIABLE in 33 Ругаеться на function rep2($1,$2,$3)
PHP: <?php $str_t = "тут у нас имейлы или страница с имейлами [email protected]"; $email_pattern = '[a-z0-9_.-]+@[a-z0-9.-]+\.[a-z]{2,4}'; $pattern = "!(?:<a\s+href\s*=\s*\"[^\"]\">($email_pattern)</a>|<a\s+href\s*=\s*\"mailto:($email_pattern)\">[^<]+</a>|($email_pattern))!is"; function reput2 ($x) { $email = $x; $url = "mailto:".$x; $safe[0]=$safe[1]=''; for($i=0; $i<strlen($email); $i++){ $safe[0] .= '&#'.ord($email{$i}).';'; } for($i=0; $i<strlen($url); $i++){ $safe[1] .= '&#'.ord($url{$i}).';'; } $replacement = "<a href='$safe[1]'>$safe[0]</a>"; return $replacement; } $emails = preg_replace($pattern, reput2($1.$2.$3), $str_t); echo $emails; ?> Я не вьезжаю чего оно не пашет. Завтра посмотрю еще раз - пойму в чем ошибка. На сонную голову думать вообще не могу. Не срочно надеюсь?