function fqdn($str) {
$CI =& get_instance();
$CI->form_validation->set_message('fqdn','The %s is not a valid domain name.');
$tld_list = array(
'arp', 'com', 'edu', 'gov', 'int', 'mil', 'net', 'org',
'aero', 'biz', 'coop', 'info', 'museum', 'name', 'pro', 'ws',
'ac', 'ad', 'ae', 'af', 'ag', 'ai', 'al', 'am', 'an', 'ao', 'aq', 'ar', 'as',
'at', 'au', 'aw', 'az', 'ba', 'bb', 'bd', 'be', 'bf', 'bg', 'bh', 'bi', 'bj',
'bm', 'bn', 'bo', 'br', 'bs', 'bt', 'bv', 'bw', 'by', 'bz', 'ca', 'cc', 'cd',
'cf', 'cg', 'ch', 'ci', 'ck', 'cl', 'cm', 'cn', 'co', 'cr', 'cu', 'cv', 'cx',
'cy', 'cz', 'de', 'dj', 'dk', 'dm', 'do', 'dz', 'ec', 'ee', 'eg', 'eh', 'er',
'es', 'et', 'fi', 'fj', 'fk', 'fm', 'fo', 'fr', 'ga', 'gd', 'ge', 'gf', 'gg',
'gh', 'gi', 'gl', 'gm', 'gn', 'gp', 'gq', 'gr', 'gs', 'gt', 'gu', 'gw', 'gy',
'hk', 'hm', 'hn', 'hr', 'ht', 'hu', 'id', 'ie', 'il', 'im', 'in', 'io', 'iq',
'ir', 'is', 'it', 'je', 'jm', 'jo', 'jp', 'ke', 'kg', 'kh', 'ki', 'km', 'kn',
'kp', 'kr', 'kw', 'ky', 'kz', 'la', 'lb', 'lc', 'li', 'lk', 'lr', 'ls', 'lt',
'lu', 'lv', 'ly', 'ma', 'mc', 'md', 'mg', 'mh', 'mk', 'ml', 'mm', 'mn', 'mo',
'mp', 'mq', 'mr', 'ms', 'mt', 'mu', 'mv', 'mw', 'mx', 'my', 'mz', 'na', 'nc',
'ne', 'nf', 'ng', 'ni', 'nl', 'no', 'np', 'nr', 'nu', 'nz', 'om', 'pa', 'pe',
'pf', 'pg', 'ph', 'pk', 'pl', 'pm', 'pn', 'pr', 'ps', 'pt', 'pw', 'py', 'qa',
're', 'ro', 'ru', 'rw', 'sa', 'sb', 'sc', 'sd', 'se', 'sg', 'sh', 'si', 'sj',
'sk', 'sl', 'sm', 'sn', 'so', 'sr', 'st', 'sv', 'sy', 'sz', 'tc', 'td', 'tf',
'tg', 'th', 'tj', 'tk', 'tm', 'tn', 'to', 'tp', 'tr', 'tt', 'tv', 'tw', 'tz',
'ua', 'ug', 'uk', 'um', 'us', 'uy', 'uz', 'va', 'vc', 've', 'vg', 'vi', 'vn',
'vu', 'wf', 'ws', 'ye', 'yt', 'yu', 'za', 'zm', 'zw');
$label = '[\\w][\\w\\.\\-]{0,61}[\\w]';
$tld = '[\\w]+';
if($c=preg_match("/^($label)\\.($tld)$/", $str, $match) && in_array($match[2], $tld_list)) {
return TRUE;
}
else{
return FALSE;
}
}
Falls jemand was zu wissen :)
das ist definitiv nicht der richtige Weg, wie zu validieren ... weil Sie tld nicht hartcodieren können, könnten sie ändern und neue werden gemacht ... – davispuh
@davispuh Dies ist eine Frage über ein Jahr alt, hat niemand sagte irgendetwas oder korrigierte es seitdem. Wenn Sie denken, dass Sie eine bessere Antwort haben, werde ich meine Antwort glücklicherweise * entziffern * und Ihre Antwort ankreuzen, so dass Leute, die kommen, um nach einer solchen Antwort zu suchen, eine korrekte Antwort erhalten, von der sie lernen können. :) – Elgoog
Laut [dieser Liste] (http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains) vermissen Sie bei einem flüchtigen Blick mehrere neue. – Shadur