NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Curl - nevypíše mi obsah divu.

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
michales
Člen
Avatar
michales:30.11.2015 19:01

Ahoj všem.

Mohl by se někdo podívat na script níže proč mi nevypíše obsah divu (<div></div>), ikdyž je adresa správná.

function get_content($url)
{
    $ch = curl_init();

    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_HEADER, 0);

    ob_start();

    curl_exec ($ch);
    curl_close ($ch);
    $string = ob_get_contents();

    ob_end_clean();
    $divs = '/<div>(.+)<\/div>/U';
preg_match($divs, $string, $matches);
$vysledek = $matches[1];
    var_dump($vysledek);
    var_dump($url);
}
echo get_content ("http://www.azlyrics.com/lyrics/garthbrooks/midnightsun.html");

var_dump mi vypíše:
NULL
string(59) "http://www.az­lyrics.com/ly­rics/garthbro­oks/midnightsun­.html"

Dříve jsem používal:

function ziskatlyrics($url)
{
    $content = file_get_contents($url);
    $first_step = explode( '<div>' , $content );
    $second_step = explode("</div>" , $first_step[1] );

    $obsah = strip_tags($second_step[0]);
    return $obsah;

}
echo ziskatlyrics("http://www.azlyrics.com/lyrics/garthbrooks/midnightsun.html");

Ale to mi dnes háže chybu :
Warning: file_get_contents(
http://www.azlyrics.com/…ightsun.html
): failed to open stream: HTTP request failed! in

Lze s tím něco udělat aby to bylo zase funkční?
Děkuji za odpověď.

Odpovědět
30.11.2015 19:01
"Cíle by měly být třešínky na dortech, ne na hromadách hoven."
Avatar
Odpovídá na michales
Neaktivní uživatel:30.11.2015 19:04

Divů je tam víc, použíj preg_match_all místo preg_match

Nahoru Odpovědět
30.11.2015 19:04
Neaktivní uživatelský účet
Avatar
michales
Člen
Avatar
Odpovídá na Neaktivní uživatel
michales:30.11.2015 19:06

To je sice pravda, ale jen jeden div je tam jako <div></div>, ostatní mají buď nějaké id nebo class

Nahoru Odpovědět
30.11.2015 19:06
"Cíle by měly být třešínky na dortech, ne na hromadách hoven."
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.