Тема: Тиц і Яндекс Rank без використання регулярних виразів (задача на 4+)

Задача на декілька строчок,
Завдання:
Визначити Тиц і Яндекс Rank будь якого сайту, без використання регулярних виразів.
Для отримання Cy i Ya rank: bar-navig.сайт-злодій/u?ver=2&show=32&url=http://хост

Подякували: Patron1

2

Re: Тиц і Яндекс Rank без використання регулярних виразів (задача на 4+)

<?
$res = file_get_contents('http://bar-navig.сайт-злодій/u?ver=2&show=32&url=http://replace.org.ua');
$xml = simplexml_load_string($res);
echo (string)$xml->tcy->attributes()->value;

в чому підвох?

Подякували: funivan1

3

Re: Тиц і Яндекс Rank без використання регулярних виразів (задача на 4+)

можна так ще. Більш низькорівнево.

$data= file_get_contents('http://bar-navig.сайт-злодій/u?ver=2&show=32&url=http://replace.org.ua');
$data = strstr($data, '<tcy ');
$data = substr($data, 0, strpos($data, '/>'));

// rang
$data = strstr($data, 'rang="');
$data = strstr($data, '"');
$rang = (int) substr($data, 1);

// cy
$data = strstr($data, 'value="');
$data = strstr($data, '"');
$value = (int) substr($data, 1);
Подякували: miroslav.chandler1

Re: Тиц і Яндекс Rank без використання регулярних виразів (задача на 4+)

miroslav.chandler написав:
<?
$res = file_get_contents('http://bar-navig.сайт-злодій/u?ver=2&show=32&url=http://replace.org.ua');
$xml = simplexml_load_string($res);
echo (string)$xml->tcy->attributes()->value;

в чому підвох?

Ваш спосіб досить цікавий, і практичний, але особисто я робив по методу, який представив Replace.

5

Re: Тиц і Яндекс Rank без використання регулярних виразів (задача на 4+)

Hanter написав:
miroslav.chandler написав:
<?
$res = file_get_contents('http://bar-navig.сайт-злодій/u?ver=2&show=32&url=http://replace.org.ua');
$xml = simplexml_load_string($res);
echo (string)$xml->tcy->attributes()->value;

в чому підвох?

Ваш спосіб досить цікавий, і практичний, але особисто я робив по методу, який представив Replace.

це простий XML і функція для його парсингу))))

6

Re: Тиц і Яндекс Rank без використання регулярних виразів (задача на 4+)

$res  = file_get_contents('http://bar-navig.сайт-злодій/u?ver=2&show=32&url=http://replace.org.ua');
$tags = explode('/>', $res);
$tcy  = explode('"', $tags[1]);

echo "rank =" . $tcy[1] . "<br>";
echo "cy =" . $tcy[3] . "<br>";

Це мій варіант але якби я це робив то код би був такий як і у miroslav.chandler ;)
Це хороший код який стабільний до змін поясню чому :)

Код який є валідний але не буде працювати у варіанті Replace але буде працювати у варіант Мирослава.

//якщо так задавати значення
<tcy rang = "2" value = "10"/>  
// або
<tcy rang='2' value='10'/>
//або
< tcy rang='2' value='10'/>

Просто кажу що я за код miroslav.chandler, а так варіантів можна назбирати чимало думаю ;)

Подякували: miroslav.chandler1

7

Re: Тиц і Яндекс Rank без використання регулярних виразів (задача на 4+)

Ясно, що всі нормальні люди використають можливості xml в php :)
Просто попрактикуватись трохи з strstr :)

Подякували: funivan1

8

Re: Тиц і Яндекс Rank без використання регулярних виразів (задача на 4+)

Replace написав:

Ясно, що всі нормальні люди використають можливості xml в php :)
Просто попрактикуватись трохи з strstr :)

Ага це 100% рядкові функції важлива штука ;)

9

Re: Тиц і Яндекс Rank без використання регулярних виразів (задача на 4+)

Я написав взагалі по-іншому. Ось результат роботи - http://skorbyk.com/services/updates/ . Якщо когось цікавить код, пишіть в ЛС, або сюди - скину функціональну частину.

10

Re: Тиц і Яндекс Rank без використання регулярних виразів (задача на 4+)

skorbyk написав:

Я написав взагалі по-іншому. Ось результат роботи - http://skorbyk.com/services/updates/ . Якщо когось цікавить код, пишіть в ЛС, або сюди - скину функціональну частину.

Покажіть тут код) Завжди є код який можна написати по іншому)) Задачу розвяжіть ;)

Re: Тиц і Яндекс Rank без використання регулярних виразів (задача на 4+)

skorbyk написав:

Я написав взагалі по-іншому. Ось результат роботи - http://skorbyk.com/services/updates/ . Якщо когось цікавить код, пишіть в ЛС, або сюди - скину функціональну частину.

Взагалі то у Вас зовсім інше, ніж те що мало бути.

Подякували: funivan1