Autor Zpráva
msigmund
Profil
Dobrý den,
prosím co to přesně dělá?
preg_match('#of about <b>([0-9,]+){1,}#si', $data, $p_bl);

Děkuji všem.
Nox
Profil
to je dost divný regexp.... najde kdekoli v textu místo kde je text "of about" (co to znamená?) pak otevřený tag <b> a potom sled čísel a čárek

to {1,} je tam podle mě k ničemu, vše potřebný už namatchuje +

stejně tak je k ničemu modifikátor s, který zapřičiňuje, že se do . bude počítat i odřádkování....jenže tady žádná tečka není, tak to nic nedělá

modifikátor i znamená, že bude jedno jestli to bude napsaný malýma nebo velkýma písmenama
msigmund
Profil
Vyhrabal jsem to v jednom starším skriptu, jenže to nefunguje.
Nevypíše to počet, pořád to píše 0.

$backlinks = 'http://www.google.com/search?q=link%3A'.urlencode($rankurl);
$data_backlinks = $this->get_page($backlinks);
preg_match('#of about <b>([0-9,]+){1,}#si', $data_backlinks, $p_bl);
$google_backlinks = ($p_bl[1]) ? number_format($this->toInt($p_bl[1])) : 0;
Joker
Profil
msigmund:
Popis reguláru viz Nox, celkově to asi má sloužit k tomu, že do toho vleze text například:
(...) consists of about 123 parts (...)
...a smyslem toho reguláru je pro další zpracování získat to číslo.

Tak jsem si nechal zobrazit nový příspěvek a už asi vím.
Zavolá to vyhledávání Googlem "link:nějakáadresa" a načte stránku s výsledky vyhledávání.
A na té stránce je v záhlaví nad výsledky hledání napsáno něco takovéhoto:
Výsledky 1 - 10 z asi 17 600 000 na dotaz (...)
...čili v angličtině:
Results 1 - 10 of about 17,600,000 for (...)

...ten skript se zjevně snaží získat to číslo. Jenže jaksi nepočítá s Googlem v češtině.

Dodatek: A nebude fungovat ani pro malé množství výsledků hledání, kdy tam Google nedává to "asi" (about).
Nox
Profil
Joker:
Co myslíš takto?
#\d+\s*-\*\d+[^\d]+((?:\d+[, ])*\d+)#

Příp. do [] by se mohly přidat další znaky, nevim jestli se někde oddělují tisíce tečkou nebo něčím jiným...
msigmund
Profil
Děkuji, za pomoc Joker.
Změna na google.cz a of about na z a je to funkční a vypíše to i když je 5 linků.
Ještě jednou děkuji.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0