2016-05-09 3 views
0

Как проверить, имеет ли строка сервер, зависящий, если URL-адрес является абсолютным или относительным?Как проверить, имеет ли строка сервер ih php

function hasServer($url){ 
    ... 
} 

Если это возвращает истинный

hasServer('http://www.google.com/'); 

еще возвращают ложные

hasServer('/about-us/team/'); 
+1

Что значит «если строка имеет сервер»? – Webeng

+0

Вы имеете в виду, если '$ url' является активным URL-адресом в Интернете? пожалуйста, исправьте свой вопрос, чтобы он стал более понятным. – Webeng

+0

Я имею в виду, если у вас есть подстрока типа www.google.com (это абсолютный url) или нет строки «server» (относительный URL) – quakeglen

ответ

1

Я думаю, что это то, что вы ищете:

$url = 'http://www.google.com/'; 
$hasServer = filter_var($url, FILTER_VALIDATE_URL); 
+0

, почему вы пошли и изменили ее на одинарные кавычки из [моего измененного] (http: //stackoverflow.com/revisions/37120937/2) двойные кавычки? Я не вижу улучшения здесь, и если должна быть переменная, проходящая внутри одинарных кавычек, и OP хочет пройти, ваш ответ не удастся –

+0

, он отлично работал ... – quakeglen

+0

@ Fred-ii- почему вы использовали двойные кавычки на строковый литерал? В общем, это плохая практика, поэтому ее следует избегать. Если ОП помещает переменную внутри одинарных кавычек, то это его ошибка, и он узнает еще одну вещь. Я не знал, что ваше редактирование исчезнет из истории, вы потеряли репутацию для этого? –

0

Есть на самом деле несколько вариантов из моего опыта. Можно было бы использовать функцию headers(), а затем проанализировать, какую информацию вы получили в результирующем массиве.

$arrayResult = headers('http://www.google.com/'); 
foreach ($arrayResult as $value) 
{ 
    echo "-- ".$value."<br>"; 
} 

Результат должен предоставить вам всю необходимую информацию, если действительно существует URL-адрес.

Простым решением на мой взгляд является просто проверить, действительно ли функция работает на URL-адресе!

if (fopen('http://www.google.com/', "r") 
{ 
    echo "the URL exists!<br>"; 
} 

Вы можете выбрать, какой из них лучше всего подходит для ваших нужд.

+0

'headers ('http://www.google.com/);' отсутствует что-то здесь. (цитата) –

+0

@ Fred-ii- thanks – Webeng

Смежные вопросы