Autor Zpráva
xxxadam577
Profil
Zdravím, mám problém.
preg_match_all("/<a\s[^>]*href=(\"??)(http[^\" >]*?)\\1[^>]*>(.*)<\/a>/siU", $html, $http);  
Když to zapíšu takto, tak mi to napíše
<a href="http://dejepiskmaturite.wz.cz/">Hlavní strana</a>
Ale já bych chtěl, aby to vypsalo jenom
http://dejepiskmaturite.wz.cz/
Taky si ještě nevím rady s tím, že chci hledat vypsat pouze odkaz z <a href="/v-tomto-formátu/">
Hodně s tím bojuji. Velmi by mi to pomohlo.
TomášK
Profil
Můžeš zkusit HTML parser, ten je narozdíl od regulárních výrazů určený pro parsování html.

$dokument = new DOMDocument();
$dokument->loadHTMLFile('http://jecas.cz/php-parsovani-html');
$odkazy = $dokument->getElementsByTagName('a');
foreach ($odkazy as $odkaz) {
  echo $odkaz->getAttribute("href");
}

Zdroj: Parsování HTML v PHP
xxxadam577
Profil
Ahoj, zajímavé, ale rád bych to udělal pomocí preg_match_all. Prosím pomůžeš mi??
TomášK
Profil
Já ne, považuju to za špatné řešení. Ale někdo jiný hádám ano, na regulární výrazy tu bývá poměrně dost odpovědí.
xxxadam577
Profil
Řekněme, že tvé řešení je dobré, ale co když to budu chtít zapsat do DB, ale nejdřiv ten odkaz prokouknout, jestli je tam vše co chci.
pcmanik
Profil
xxxadam577:
Tak použijes curl a pozrieš sa nie? Kde je problém? O čo sa vlastne snažíš? Uveď prosím celý kontext.
xxxadam577
Profil
s curl nemám zkušenosti. Verze Toma se mi líbí, ale jak vypsat pouze jeden odkaz???
pcmanik
Profil
xxxadam577:
$odkazy->item(0)->getAttribute("href");

Používaj dokumentáciu. Toto fórum neslúži ako výučba začiatočníkov.

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: