Я реализовал функцию для проверки доменов .edu.Вот как я это делаю:
if( preg_match('/edu/', $matches[0])==FALSE )
return FALSE;
return TRUE;
Теперь я хочу пропустить и те URL, которые указывают на некоторые документы, такие как .pdf и .doc.
Для этого, следующеекод должен был работать, но это не так:
if( preg_match('/edu/', $matches[0])==FALSE || preg_match('/pdf/i', $matches[0])!=FALSE || preg_match('/doc/i', $matches[0]!=FALSE))
return FALSE;
return TRUE;
Где я ошибаюсь в этом отношении?Кроме того, как я буду реализовывать preg_match таким образом, чтобы он содержал список типов документов для проверки в строке URL.Если найден определенный тип документа, он должен вернуть false.Другими словами, я хочу предоставить список (возможно, массив) различных типов документов в виде $ pattern для поиска в URL.
Примечание: match [0] содержит всю строку URL.Например: http://www.nust.edu.pk/Documents/pdf/NNBS_Form.pdf
Код функции:
public function validateEduDomain($url) {
// get host name from URL
preg_match('@^(?:http://)?([^/]+)@i', $url, $matches);
$host = $matches[1];
// get last two segments of host name
preg_match('/[^.]+\.[^.]+$/', $host, $matches);
if( preg_match('/edu/', $matches[0])!=FALSE && (preg_match('/pdf/i', $matches[0])==FALSE || preg_match('/doc/i', $matches[0]==FALSE)))
return TRUE;
return FALSE;
}