Tervehdys
Onko ideoita miten sivustolla olevat linkit voisi testata. Eli nuo linkit löytyisivät tietokannasta ja ajattelin, että jollakin tavalla pystyisi varmaan testaamaan mitkä linkit toimivat ja mitkä ei. En tarvitse kokonaista koodia, vaan ongelmana on vain se, että onko jotain PHP:ssa esim. jotain käskyä, jolla linkin toimivuuden voi testata - eli että vastaako kysyttävä sivu vai ei. Ideanahan olisi päästä "manuaalisen" tarkastuksen kiroista ja lisätä tällainen testausskripti hallintosivuille.
onnistuu jotenkin, elikkä sellaisella kuin file_exists. Tämä siis kertoo onko tiedostoa olemassa. Siitä vaan sitten tarkistamaan, että:
<?php $linkki = "etusivu.php"; if (file_exists($linkki)) { echo "<a href=\"$linkki\">Etusivu</a>; } else { } ?>
https://www.php.net/manual/en/function.
Tuossa valmis funktio, toimivuutta en kokeillut, mutta ratkaisu on jokatapauksessa em. fsockopen.
Kiitoksia ederth testaan tuota heti kun ehdin. Chiqu: tuo sama juttu kävi itselläkin mielessä, mutta ongelmahan on se, että osa osoiteista voi olla muotoa "http://www.esimerkki.fi/", jolloin tuo file_exists on hyödytön. Kiitoksia joka tapauksessa kummallekin
D.J-Virvoitusjuomalle kiitokset, ehdein jo tosin itse tekemään jo tuonne päin olevan koodin, joka ajaa silmukalla kaikki "linkit" -myslitaulun osoitteet läpi ja ilmoittaa niiden toimivuudesta. Näytti toimivan vielä aika sutjakkaasti, kun osoitteita oli viisi :)
Mitä luulette kuinka mahtaa käydä, jos osoitteita on about 300-500? (erääseen projektiin jota työstän tulee kokonaisuudessaan tuollainen linkkimäärä)
jotain tarkistuksia, ettei joka sivunlatauksella tarvitse tarkistaa linkkejä....
Mulla ei jostain syystä toiminut tuo linkin testaaminen, väitti välillä ettei se ollut olemassa, ja välillä taas toimi.
En tiedä missä on vika, ehkä sen testattavan serverissä?
Edit: Juujuu, nyt kun testasin, niin mikään domainpark osoite ei toimi (eli sellainen joka siirtää käyttäjän eri osoitteeseen)
Olisikohan kellään tuohon ratkaisua?
Edit2: Ehdin jo väsätä jonkin purkan:
<?php $url = ""; // se url... $toimii = url_validate($url); if(!$toimii){ $fp = @fopen($url, "r"); $data = @fgets($fp); @fclose($fp); if($data != ""){ $toimii = 1; } } ?>
Ainakin nyt nuo domainparkit näyttänee toimivan... katson jos vielä tulee toimimattomuuksia joissain osoitteissa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.