Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Taci

    addikt

    válasz nevemfel #20501 üzenetére

    DesktopServer-t használok a tesztek és a fejlesztés időszakára.

    Azt vettem észre, hogy talán onnantól ment félre a dolog, hogy beletúrok egy-egy link forrásfájljába, hogy kiszedjek pár infót belőle.

    $all_lines = file($feed_item_link);
    foreach ($all_lines as $line_num => $line) {
        $keywords = '"keywords" content="';
        if (!empty(strpos($line, $keywords))) {
            $keywords_strstr = strstr($line, $keywords);
            $keywords_strstr_substr = substr($keywords_strstr, 20); //ennek a hossza: "keywords" content="
            $keywords_closing_stripos = stripos($keywords_strstr_substr, '"');
            $keywords_result = substr($keywords_strstr_substr, 0, $keywords_closing_stripos);
            $return_keywords_link = $keywords_result;
            $return_keywords_link = str_replace(", ", ",", $return_keywords_link);
        }
    }

    Ha ékezet nélküli adatot szedek ki (pl. linket), akkor nincs gond, ez a fenti kód tökéletesen működik. (nem pont ugyanez a kód, de a lényege ugyanez, csak más string-re keres, és nincs a végén replace)
    Viszont azt vettem észre, ha van benne ékezet, akkor az egész kuka, a logtól az adatbázisig minden.

    Fura ami itt történik, mert pár bejegyzésre a PHP error.log-ja ezt dobja:

    PHP Warning: file(https://index.hu/techtud/2021/03/27/allatok-oroszorszag-leopard-nagymacska/): failed to open stream: HTTP request failed!

    A link srting-ként van átadva, szóval ez a valóságban file("link")-ként néz ki, de így logolja valamiért. Egyik csatornán működik mindre, másik csatornán mindig csak az első 21-re. Már a hajam tépem, nem értem.

    ------------

    Szóval igazából ez 2 probléma:
    1) Ha ékezetes tartalmat szedek ki, az hazavágja a logot és az adatbázis ezen részét is. De ez sem mindig, mert láttam már ékezetes tartalommal a logot és az adatbázist is. De valamiért valahol néha hibázik, csúnyán.

    2) Az $all_lines = file($feed_item_link); nem mindig ad vissza eredményt. Lehívom 60 linkre, abból 21 jó lesz, a többi nem. Lehívom a rosszul sikerült 49-re, abból 21 megint jó lesz.
    De ugyanez egy másik csatornával (Index.hu helyett Origo.hu) meg csont nélkül viszi az összeset elsőre.

Új hozzászólás Aktív témák