Ik ben op zoek naar een manier op dubbele input uit een invoer vak te filteren.

Het invoervak is alleen bestemd voor een webadres in de vlg vorm: http://www.site.com

Ik gebruik filter_validate_url zodat het zeker een website is maar ik heb na testen ontdekt dat er gewoon output is als die als goed wordt aangemerkt als je bijv. http://www.site.comhttp://www.site.com intypt.

Is het mogelijk dit te filteren? Ik ben tot nu toe de vlg array tegen gekomen : array_unique, maar dit lijkt me onbruikbaar voor dit doeleind.

Is er een standaard functie of komt het op het toepassen van bestaande andere functies aan?

Ik heb topic 'dubbele tekens uit input filteren' genoemd omdat indien er geen standaard functie is, ik wil testen of er 2 x http of 2 x www in staat en dan de bezoeker terugsturen naar een leeg vak.
Een URL waar 2x http of 2x www in voorkomt is niet per definitie ongeldig.

Misschien helpt het als je beschrijft waar je deze URL invoert (wat voor soort applicatie of functionaliteit), waar je deze voor gebruikt en waarom dit een probleem vormt.

Je zou een check kunnen uitvoeren waarbij de de website aanroept, en kijkt of dit resultaten oplevert. Daarnaast kan een URL *nu* geldig zijn, maar volgende week niet meer...

Op dit moment is de informatie die je geeft (en waarom dit een probleem is) veel te beknopt.

Op zich wel een goed idee om te checken of een site idd bestaat.

Ik weet niet of cURL de enige code is die hiervoor gebruikt wordt, maar omdat het standaard in WAMP zit heb ik verschillende cURL scripts getest, echter deze gaven wel opmerkelijke en wisselende resulaten.

Deze heb ik van php.net


<?php
// Create a curl handle
$ch = curl_init('http://www.msn.com');

// Execute
curl_exec($ch);

// Check if any error occurred
if(!curl_errno($ch))
{
 $info = curl_getinfo($ch);

 echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url'];
}

// Close handle
curl_close($ch);
?>




met deze url msn.com geeft het een normale output.
maar probeer ook eens ww.google.com, www.telegraaf.nl of www.yahoo.com

de laatste 2 gaven niet het verwachtte resultaat. www.telegraaf.nl liet direct de landing page zien in de browser en yahoo.com gaf een error report wat luidde: could not process this GET request, maar liet wel de benodigde tijd zien die het request nodig had.

Hoe kan dit?

Op welke manier worden bepaalde info verzoeken opgevangen bij sites?
Zien ze het als ongeoorloofd of misschien zelfs kwaadaardig?



> could not process this GET request

Dat komt waarschijnlijk, doordat www.yahoo.com geredirect wordt naar de https-versie.

Sowieso zou ik een dergelijke check niet doen met curl; dat heeft een heleboel onnodig dataverkeer.
Ik zou zelf met dns_check_record('www.yahoo.com') controleren of de ingevoerde hostname bestaat.
Geldig domein is niet hetzelfde als een geldige URL.

Volgens mij kun je in cURL wel aangeven dat redirects gevolgd moeten worden, met een max aantal iteraties?

Ook zou je met het HEAD commando een snelle(re) check kunnen doen. HEAD is equivalent aan GET, met als verschil dat de message body (het hele document) niet geretourneerd wordt. Daarmee elimineer je ook het onnodige dataverkeer (wat wel een terecht punt is).
ik heb het redelijk simpel kunnen oplossen dmv checkdnsrr

topic mag sluiten.
Niet nodig, deze zinkt vanzelf wel naar de bodem.

Fijn om te horen dat het opgelost is.

Reageren