Keresés

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

  • Taci

    addikt

    válasz SUPREME7 #20606 üzenetére

    Köszönöm, hogy rámutattatok erre, sok mindent kiderült a válaszokból, pl. az is, hogy nagyon rossz sorokban néztem a header tartalmát. De kerestem YT-videót, és már látom, mit néztem be.

    Valóban 301 Moved Permanently.

    Arra gondoltam, akkor a lenti/fenti (ki-hogy nézi) szrkiptbe (testIfValidURL) raknék egy olyan részt, hogy vizsgálná a header-ben, hogy ha át van irányítva, akkor mit csináljon.
    Valahogy így:
    if (stripos($headers[0],"301") || stripos($headers[0],"302")){
           //
       }

    Pár kérdés ide:
    1) Az úgy látom kb. fix, hogy az első elemet [0] jó ha vizsgálom, így megkaphatom a result code-ot. (Ez ugye ha jól látom, asszociatív tömbnél is [0], tehát rakhatom a get_headers($url, 1)-be az "1"-et, így is a [0] fogja a státusz sorát azonosítani?

    2) A "200 OK" az adott. A 301 után mindig Moved Permanently van, vagy néha más is? (pl. Redirect) Elég így vizsgálnom, ahogy fent van, simán csak a 301-re? (Bár itt elég egyértelműen fogalmaz: [link] Na de már nem törlöm ki ezt a pontot.)

    3) Ahogy látom, a 302 is átirányítás, csak más fajta. Vizsgáljam ezt is, ki tudja, hátha egyszer pont ezen "akadna fent"?

    Arra gondoltam, ha azt találja, hogy át van irányítva (301 vagy 302), akkor vizsgálja meg a header-ben lévő Location alatt lévő linket.
    Pl. a töltöttkáposztásnál ez van benne:
    Location: https://www.szeretlekmagyarorszag.hu/rokaland/ime-a-tokeletes-toltott-kaposzta-receptje/ (a félkövérben változott)

    És ha ott 200 OK van a headerben, akkor végülis sikeres a teszt.
    Ezt az ellenőrzést kicsit trükkösebb volt, de végül úgy sikerült, hogy így hívom meg:
    get_headers($url, 1)
    Tehát beletéve az 1-est, és így asszociatív tömböt ad vissza. Aztán azt is láttam, hogy a "Location" kell nekem, abban van, hogy hova irányít. De pl. a káposztásnál 2 eleme is van, szóval azt is vizsgálnom kell, ha több van benne.
    Mert pl. amire elsőre irányít ($headers['Location'][0]), annak a végén nincs "/", a másiknak meg ($headers['Location'][1]) van. És az első újra 301, ami átdob a másodikra, és az végül már 200 OK.

    Szóval körülményesen, de meg lehet oldani.
    Jól csinálom így? Vagy van egyszerűbb módja?

    Köszi az iránymutatást.

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

Hirdetés