IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Как средствами PHP показать ИЦ Яндекса? (https://www.imho.ws/showthread.php?t=92370)

xmaker 10.09.2005 17:48

Как средствами PHP показать ИЦ Яндекса?
 
Как средствами PHP показать ИЦ Яндекса не картинкой а текстом (цифрой) или как нибудь по другому?

Trotil 11.09.2005 03:44

Один из возможных путей решения проблемы - рспознавание образов. Т.к. цифры на картинке имеют четкий формат и строгое местоположение на картинке, задача не очень сложная и даст с большой долей вероятности верный результат. Была в журнале "Хакер" статья, про как можно средствами perla распознать картинку. (то бишь "распознавание образов"). Рассказывалось про обход системы проверки при отправки SMS Beeline. Ссылку не искал пока, т.к. не уверен, что вообще тебе метод метод сгодится. там были описаны лишь отрывки кода, и требуется знание на мреднем уровне perla и php? чтобы получить тот скрипт, который ты хочешь.
Собственно, дай знать, приемлен ли этот способ для тебя? Стоит ли поискать материалы в этом направлении?
Или нужно что-нибудь попроще?.. :)

Добавлено: вот и ссылка:
http://www.xakep.ru/magazine/xa/073/120/1.asp

xmaker 11.09.2005 12:47

Мне просто нужно чтобы ИЦ показывалось не картинкой а цифрой, желательно чтобы это можно было сделать на пхп и желательно чтобы все было по проще в плане кода.

plohich 11.09.2005 17:21

xmaker
тебе надо парсить страницу ответа ( например http://search.yaca.yandex.ru/yca/cy/ch/imho.ws ) и вытаскивать из нее нужное значение

в данном случае лучше искать ссылку такого формата http://www.yandex.ru/yandsearch/?tex...erver=0&ci=250

в конце будет написан CY, или она не будет найдена если CY ниже 10.

Hubbitus 13.09.2005 13:24

Пример (для поста plohich) выше:
PHP код:

$url 'imho.ws';

$file 'http://xml.yaca.yandex.ru/yca/cy/ch/'.$url.'/';
$file_cont file_get_contents($file);
preg_match('/<b>Индекс цитирования \(тИЦ\) ресурса.+?"Кто ссылается">(\d+)<\/a>/i'$file_cont$matches);
echo 
'Индекс цитирования сайта '.$url.' по яндексу равен '.$matches[1]; 


xmaker 21.09.2005 02:03

Большущее спасибо, вставил в скрипт работает. Попробывал этот код только сейчас потому что мне дали код по солидней но он что-то у меня не хочет работать. :yees:

Блин теперь проблема, дело в том что скрипт использует smarty где нужно писать УРЛ ставлю {$link.URL} и все неработает, может можно что-нибудь сделать?

Heo 21.09.2005 09:13

xmaker
Цитата:

xmaker:
Блин теперь проблема, дело в том что скрипт использует smarty где нужно писать УРЛ ставлю {$link.URL} и все неработает, может можно что-нибудь сделать?
Если ты это пишешь в ТЕМПЛЕЙТЕ, то проверь, присвоил ли ты значение для $link['URL']? Сделал ты $smarty->assign?
Если ты это пишешь в PHP-файлах, то ты это делаешь не правильно. в PHP используется $link['URL'], а в Smarty-темплейтах {$link.URL}

xmaker 21.09.2005 12:45

А как присвоить?

Что нужно прописать?

Heo 21.09.2005 13:04

xmaker
http://smarty.php.net - там очень подробно всё написано.

PHP код:

smarty->assign('link'$link

После этого можно использовать в темплейтах {$link.URL}

xmaker 21.09.2005 18:10

Дело в том что я в програмировании не понимаю почти ни чего. Мне вот интересно в каком файле нужно прописывать эти строки?

Если можно на моем примере объясните:

Вот есть в папке templates link.tpl, мне нужно чтобы внизу каждой ссылки показывался ИЦ яндекса, PR гугле уже есть.
Вот код:

PHP код:

$url 'imho.ws'

$file 'http://xml.yaca.yandex.ru/yca/cy/ch/'.$url.'/'
$file_cont file_get_contents($file); 
preg_match('/<b>Индекс цитирования \(тИЦ\) ресурса.+?"Кто ссылается">(\d+)<\/a>/i'$file_cont$matches); 
echo 
'Индекс цитирования сайта '.$url.' по яндексу равен '.$matches[1]; 

Чтобы все это работало нужно в $url = 'imho.ws'; в место 'imho.ws' вставить переменную которая бы подставляла УРЛ сайта, переменная такая есть {$link.URL} но это smarty и поэтому не работает т.к. скрипт для показа ИЦ это ПХП код, значит нужно найти или создать такую переменную чтобы работала с ПХП кодом в .tpl файлах или это не правильный ход мыслей? Расскажите как это сделать?

Hubbitus 22.09.2005 14:20

Цитата:

xmaker:
Чтобы все это работало нужно в $url = 'imho.ws'; в место 'imho.ws' вставить переменную которая бы подставляла УРЛ сайта
Именно.
Как Вам и писали Выше - выполняться процитированный мой код должен в ПХП, а в СМАРТИ соответственно вывод только.
Вобщем правильно говорил Heo, про assign, переменные и т.д., вот рабочий пример (естественно свои пути и настройки СМАРТи впишите в php-файле), как итог ко всему вышесказанному, чтобы больше не мусолить такую простейшую задачу.

Heo 22.09.2005 14:27

xmaker
Я советую (без плохих мыслей) почитать вам вот это. Там коротко и понятно написано как использовать Смарти

xmaker 22.09.2005 14:56

Я понимаю что для Вас это простейшая задача, но для меня это трудновато т.к. програмированием я не увлекаюсь.

Heo 22.09.2005 15:18

xmaker
Цитата:

xmaker:
Чтобы все это работало нужно в $url = 'imho.ws'; в место 'imho.ws' вставить переменную которая бы подставляла УРЛ сайта, переменная такая есть {$link.URL} но это smarty и поэтому не работает т.к. скрипт для показа ИЦ это ПХП код, значит нужно найти или создать такую переменную чтобы работала с ПХП кодом в .tpl файлах или это не правильный ход мыслей? Расскажите как это сделать?
PHP Код идёт в php файлы, а HTML в tpl файлы.

Примерно это должно выглядить вот так:

index.php
PHP код:

<?php 

// #################### SMARTY START #####################
// Include Smarty template class
require 'libs/Smarty.class.php';
// Create a new object
$smarty = new Smarty;
// Some smarty settings.
$smarty->compile_check true;
$smarty->debugging false;

// #################### SMARTY END #######################

$url 'imho.ws';

$file 'http://xml.yaca.yandex.ru/yca/cy/ch/'.$url.'/';
$file_cont file_get_contents($file);
preg_match('/<b>Индекс цитирования \(тИЦ\) ресурса.+?"Кто ссылается">(\d+)<\/a>/i'$file_cont$matches);
//echo 'Индекс цитирования сайта '.$url.' по яндексу равен '.$matches[1];  

$smarty->assign('url''$url');
$smarty->assign('matches'$matches[1]);

$smarty->display('link.tpl');

?>

link.tpl
Код:

<html>
<head><title></title>
</head>
<body>
Индекс цитирования сайта {$url} по яндексу равен {$matches}
</body>
</html>


Hubbitus 23.09.2005 10:07

Цитата:

xmaker:
Я понимаю что для Вас это простейшая задача, но для меня это трудновато т.к. програмированием я не увлекаюсь.
HTML-то знаете? Вот возьмите мой пример, положите, и просто правьте уже шаблон на красивый вывод!

Цитата:

Heo:
Примерно это должно выглядить вот так:
А разве это чем-то отличается принципиально от моего примера???

Heo 23.09.2005 10:44

Hubbitus
Тем что это полный рабочий скрипт, с использованием Шаблонной системы Smarty

xmaker 23.09.2005 13:05

Цитата:

HTML-то знаете? Вот возьмите мой пример, положите, и просто правьте уже шаблон на красивый вывод!
HTML знаю, буду пробывать, спасибо.

xmaker 26.09.2005 16:29

Если ввести mail.ru то этот скрипт уже ИЦ не покажет. :(

Hubbitus 26.09.2005 22:49

Цитата:

Heo:
Тем что это полный рабочий скрипт, с использованием Шаблонной системы Smarty
Это конечно слегка флейм уже, но не мог удержаться: На пост выше, у меня разве не рабочий скрипт "с использованием Шаблонной системы Smarty" для этого примера залинкован, а???

Цитата:

xmaker:
Если ввести mail.ru то этот скрипт уже ИЦ не покажет. :(
А вот это дельное замечание. Правда неужели просто не привязаться к другому тексту для поиска? :)
Вот испроавленная версия, так сказать: Нужно в том скрипте заменить строчку preg_match (...) на:
PHP код:

preg_match('/<a href\=\"http\:\/\/www\.yandex\.ru\/yandsearch\/\?text\=\&Link\=http\:\/\/w*\.'.preg_quote($url).'.*?\&ci=(\d{2,7})/i'

И для mail.ru будет все работать в том числе!

xmaker 26.09.2005 23:30

Что то не работает: Parse error: parse error, unexpected T_ECHO in E:\www\localhost\html\sportru\1.php on line 8

Hubbitus 27.09.2005 11:32

Цитата:

xmaker:
Что то не работает: Parse error: parse error, unexpected T_ECHO in E:\www\localhost\html\sportru\1.php on line 8
Прошу прощения, там не полная строка, вот верная:
PHP код:

preg_match('/<a href\=\"http\:\/\/www\.yandex\.ru\/yandsearch\/\?text\=\&Link\=http\:\/\/w*\.'.preg_quote($url).'.*?\&ci=(\d{3,7})/i'$file_cont$matches); 


Heo 28.09.2005 09:05

Hubbitus
Я показал принцып работы Smarty. Неужели это сложно признать и надо разводить тут базар? Не хочешь - покажи сам

Hubbitus 28.09.2005 10:01

Цитата:

Heo:
Я показал принцып работы Smarty. Неужели это сложно признать и надо разводить тут базар? Не хочешь - покажи сам
Я только никак не могу понять, в посте #11 в прилинкованном smarty_tic_simple.zip (поскольку аттачи тогда не работали, а постить текстом было лень) я не тоже самое показал впринципе, также в двух файлах temp.php - для вызовов, настройки и подключения smarty и temp.tpl для самого smarty-шаблона????? Кстати, тот пример какраз был реально протещен - все работало. Я не против альтернативы от кого-то, просто мне неясен такой категоризм....

Heo 28.09.2005 14:37

Hubbitus
Я этого НЕ ВИДЕЛ. Он всё просил и просил как сделать - и я написал ему. А чтобы были какие-то аттачи - не видел. Да и не моё это дело - если тебе было лень писать - то извиняйте, просто скажи спасибо, и не надо возникать за то, что я помогаю. Тема закрыта

xmaker 28.09.2005 15:08

Ребята хорош правды искать. :)


Часовой пояс GMT +4, время: 14:05.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.