✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

cURL-osoitteen käyttäminen sen määrittämiseen, onko määritetty URL-osoite kelvollinen sivu

21

Aiemmin tässä kuussa kirjoitin uudelleenohjauksen kohteen löytämisestä PHP:n cURL:n avulla. Tämä voi olla hyödyllinen toiminto, kun:

  • tiedät, että URL-osoitteet, joiden kanssa olet tekemisissä, ohjaavat uudelleen,
  • tiedät, että uudelleenohjausten määrä rajoitetaan yhteen.

Myönnettäköön, että jälkimmäisessä tapauksessa siitä tulee vaikeampaa, koska esimerkiksi Twitterin kaltaisilla sivustoilla on useita uudelleenohjauksia ennen kuin pääset määränpäähän.

Mutta se on toisen postauksen aihe (ellet vain halua toteuttaa rekursiivista tai iteratiivista tapaa käsitellä pyyntöjä, kunnes löydät lopullisen määränpään).

Joka tapauksessa on toinen asia, joka voi myös olla hyödyllinen, kun työskentelet uudelleenohjausten ja cURL-osoitteen kanssa, ja se määrittää, viekö määritetty URL-osoite kelvolliselle sivulle.

Onko määritetty URL-osoite kelvollinen sivu?

Tämän viestin koodi ei ole täysin erilainen kuin mitä olet ehkä nähnyt aiemmissa viesteissä; tärkeimmät asiat, jotka aiomme tehdä, ovat kuitenkin seuraavat:

  • alusta cURL meille antamallamme URL-osoitteella,
  • aseta CUROPT_RETURNTRANSFER arvoksi tosi (joka palauttaa siirron arvon merkkijonona),
  • ja arvioi sitten pyynnöstä palautettu HTTP-tilakoodi.

Voit lukea kaiken tämän sivuston koodeista, mutta kaksi, joista olemme eniten huolissamme, ainakin tämän viestin osalta, ovat 404 ja 200.

cURL-osoitteen käyttäminen sen määrittämiseen, onko määritetty URL-osoite kelvollinen sivu

Joten ensin koodi:

<?php
/**
 * Determines if a specific URL returns a valid page. This is experimental and it is based on
 * the status code.
 *
 * @param string $url the url to evaluate
 *
 * @return bool true if the URL returns a status code of 404; otherwise, false
 */
public function isValidUrl(string $url): bool
{
    $curl = curl_init($url);

    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

    $response = curl_exec($curl);

    $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    curl_close($curl);

    return (404 !== $httpCode);
}

Ja näin se toimii:

  1. funktio hyväksyy URL-osoitteen argumenttina,
  2. alustamme cURL:n oikeilla asetuksilla ja suoritamme sitten pyynnön,
  3. luemme vastauksesta tallennetun tilakoodin arvon,
  4. suljemme cURL-kahvan ja palautamme sitten tilakoodin arvioinnin.

Se näyttää riittävän yksinkertaiselta, eikö?

Ja yleisesti ottaen on. Sinun on ehkä säädettävä itse tilakoodiasi tai haluat ehkä jäsentää tiedot vastauksesta. Tämä voidaan tehdä jäsentämällä merkkijono, käyttämällä säännöllisiä lausekkeita tai muuta. Mutta se ei kuulu tämän postauksen piiriin.

Vähintäänkin tämä kertoo, onko URL-osoite, jolle sinut ohjataan, kelvollinen sivu vai ei.

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja