Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Разработка и сопровождение сайтов (http://forum.sape.ru/forumdisplay.php?f=29)
-   -   Подскажите как реализовать на пхп? (http://forum.sape.ru/showthread.php?t=20166)

Crudelis 11.10.2008 00:23

Подскажите как реализовать на пхп?
 
У меня есть варезный сайт, хочеться реализовать проверку полной новости перед добавлением на модерацию. Что именно хочу реализовать: перед добавлением новости, текст её проверяеться на наличие определенных ссылок к примеру http://depoz.com/. Т.е. проверяеться текст полной новости. Если ссылки нет то пользователю выдаёться ошибка и новость не добавляеться. Подскажите как это можно реализовать на пхп

sVs 11.10.2008 00:48

проще всего - проверить регулярными выражениями

Markiz de Sad 11.10.2008 01:02

Если просто вхождение строки, пользуйтесь strstr (для урлов лучше stristr), быстрее, чем регулярки.

Crudelis 11.10.2008 01:46

Кто нибудь может реализовать такое чудо за вознаграждени под дле? сижу ломаю голову не пойму как туда всучить хрень) Если да пишите в личку

Ufaweb 11.10.2008 01:48

Цитата:

Сообщение от Crudelis (Сообщение 274731)
Кто нибудь может реализовать такое чудо за вознаграждени под дле?

Не совсем всасываю - а нафига все это нужно? Антиспам такой? :D

Crudelis 11.10.2008 01:56

Цитата:

Сообщение от Ufaweb (Сообщение 274733)
Не совсем всасываю - а нафига все это нужно? Антиспам такой

У меня варез сайт и люди постят ссылки только на вип=лайф + летитбит, вип-файл плати и качай, летитбит ставь ускоритель в котором вирус и качай. Если с летитбита не качать 2 недели файл удаляеться и остаёться только плати и качай а на рапиде файлы живут вечно. Я удаляю новости с випом и летитбитом если нет зеркал а хочеься сделать чтоб они и не добавлялись

kusuka 11.10.2008 01:58

Вот пример по Вашему вопросу
 
Написал примерчик. Скрипт проверяет на вхождение любой из нужных ссылок в текст.

Код:

//массив ссылок для проверки на наличие
$links_to_check=array();
$links_to_check[]='http://depoz.com';
$links_to_check[]='http://depoz1.com';


$fulltxt=<<<HTML
Ваш полный текст. <a href="http://depoz.com" target="_blank">ссылка в тексте</a> Ваш полный текст Ваш полный текст <a href="http://depoz2.com" target="_blank">левая ссылка в тексте</a>
HTML;

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

//Выбираем все ссылки со страницы
preg_match_all("#<a href=[\"'](\S.+?)['\"].+?".">(.+?)</a>#is",$fulltxt,$result);

//флаг что ссылки присутсвуют в тексте
$linksfound=false;

//делаем проверку на наличие нужных ссылок
foreach ($result[1] as $linkurl){
        // если ссылка входит в массив нужных урл - то ставим флаг что ссылка/ссылки найдены
        if (in_array($linkurl,$links_to_check))
        $linksfound=true;
}

//если не найдены ссылки - выдаем ошибку
if ($linksfound===false) die ('LINKS NOT FOUND!');


Crudelis 11.10.2008 02:01

kusuka, Спасибо огромное побежал цеплять на дле

kusuka 11.10.2008 02:10

вот так
 
вот вариант регулярки:
Код:

preg_match_all("#<a href=[\"']http://(\S.+?)[/'\"].+?>(.+?)</a>#is",$fulltxt,$result);
будет выбирать только домены из ссылок (напр. из http://depoz.com/бла/блаа/блаа.html будет выбрано для проверки depoz.com)

Crudelis 11.10.2008 02:14

Я хочу сделать чтоб проверялся весь текст на наличие ссылок, т.е. если там могут быть любые ссылки но обязательным присутствием должен быть http://depoz.com
Если её нету то новость не добавляеться. Такой вариант

Т.е. идея какова, есть врез сайт, люди постят новости в которых короткое описание и полное. В полном описании идут ссылки на скачивание их может быть много и не факт что с там есть dеpoz.com. Перед добавлением новости текст полной новости проверяеться на наличие как раз этой ссылки депоз.ком, если она есть то новость добавляеться в базу если нет то ошибку кидает


Часовой пояс GMT +3, время: 00:03.

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.