Johan West op 23/10/2015 12:37:43
Echter een domeinnaam heeft soms ook subdomeinen, maar chkdnsrr geeft deze bij mij aan als FALSE.
Een bestaand subdomain zal gewoon true geven
Johan West op 23/10/2015 12:37:43
Echter www.phphulp.nl/forum/newtopic/3/ niet.
Dit is dus geen subdomain, maar een verwijzing naar een directory.
Link gekopieerd
Met chkdnsrr() controleer je of iets in de DNS voorkomt. Maar doordat er veel wildcards gebruikt worden voor subdomeinen, zal het best zo zijn dat veel subdomeinen dus (voor onszelf) onterecht als false worden gemarkeerd.
Dit is wat ik verwacht, zonder de functie (nog) te hebben uitgeprobeerd.
Link gekopieerd
J
Johan West
23-10-2015 13:16
gewijzigd op 23-10-2015 13:17
Sorry SanThe moest directories wezen ipv subdomein.
Maar subdomeinen die niet bestaan worden (helaas) ook niet gepakt en dus is een gek subdomein als jkjkjkjkiiiipopk.wordpress.com TRUE.
Voor beiden zoek ik een oplossing, waar moet ik het zoeken? Kan je directories vinden mbv regex?
Link gekopieerd
Kan je niet aan de hand van headers controleren of een URL bestaat?
<?php
if (isset($_GET['website'])) {
$array = get_headers($_GET['website']);
$string = $array[0];
if(strpos($string,"200")) {
echo 'Deze URL bestaat!';
} else {
echo 'Deze URL bestaat niet.';
}
} else {
echo "Geen input in de URL, try again.";
}
?>
Link gekopieerd
Je kunt het in twee stukken knippen:
1. Controleer eerst met
filter_var() en het validatiefilter
FILTER_VALIDATE_URL of de string de geldige syntaxis van een URL heeft.
2. Zo ja, open dan
met get_headers() of cURL een verbinding naar die URL.
Het openen van een verbinding is prijzig (in termen van tijd en resources), dus daaraan wil je pas beginnen als de input in elk geval lijkt op een URL.
Link gekopieerd
Johan West op 23/10/2015 13:16:11
Maar subdomeinen die niet bestaan worden (helaas) ook niet gepakt en dus is een gek subdomein als jkjkjkjkiiiipopk.wordpress.com TRUE.
Dan zal er een wildcard in de dns staan.
Link gekopieerd
J
Johan West
23-10-2015 16:11
gewijzigd op 23-10-2015 16:16
@Arien je methode werkt, erg bedankt voor je hulp.
Toevoeging op 23/10/2015 16:15:37:
Als ik Ariens code gebruik mag ik geen domein testen zonder http:// , het gekke subdomein wordt herkend als niet bestaand.
Link gekopieerd
Als https-websites niet zouden werken, vrees ik dat er SSL-ondersteuning mist aan je PHP-installatie. Je kan proberen of je een fallback kan doen naar het http-protocol omdat ze in zulke gevallen zowel http als https ondersteunen. Anderzijds kan je ook gebruik maken van mogelijkheden in cURL.
Link gekopieerd
Ik wil deze code uitbreiden door een reeks urls op geldigheid te testen.
Met implode heb ik deze urls in een string geplaatst omdat chkdnsrr niet in staat is een array te verwerken.
Nu ziet de string er als volgt uit: google.com nl.wordpress.com en chkdnsrr ziet dit als 1 domein en geeft false weer.
ik heb ook geprobeerd met een , te scheiden, maar dit werkte niet.
Is er een specifieke delimiter of moet ik voor een andere aanpak kiezen zoals foreach of een andere loop?
Link gekopieerd
Laat die code eens zien, je kunt volgens mij gewoon voortborduren op de code die Ariën je gaf.
Ben ik toch nieuwsgierig: waarom zou je domeinnamen geconcateneerd op willen slaan? Waarom niet als aparte stukjes informatie maar als lap tekst?
Link gekopieerd