Введение
В этой небольшой статье я хочу показать как определить версию php без доступа к сайту, то есть не ни каких прав на создание и редактирование скриптов на хостинге или сервере.
Для того, чтобы узнать версию php нам достаточно знать только адрес сайте. Все дело в том, что сервер самостоятельно формирует заголовки страниц и если владелец сайта умышлено не отключает данную опцию, то мы сможем без труда получить информацию о версии php из заголовков. Вот, например, такую информацию можно получить из заголовков, которые формируются сервером, на котором находится этот блог:
array(14) { [0]=> string(15) "HTTP/1.1 200 OK" [1]=> string(13) "Server: nginx" [2]=> string(35) "Date: Sat, 05 Apr 2014 18:15:21 GMT" [3]=> string(38) "Content-Type: text/html; charset=UTF-8" [4]=> string(17) "Connection: close" [5]=> string(21) "Vary: Accept-Encoding" [6]=> string(24) "X-Powered-By: PHP/5.3.18" [7]=> string(38) "Expires: Thu, 19 Nov 1981 08:52:00 GMT" [8]=> string(77) "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0" [9]=> string(16) "Pragma: no-cache" [10]=> string(40) "X-Pingback: http://vk-book.ru/xmlrpc.php" [11]=> string(47) "Link: <http://vk-book.ru/?p=691>; rel=shortlink" [12]=> string(62) "Set-Cookie: PHPSESSID=04298353f84df404bfbc5e0fa7b32929; path=/" [13]=> string(21) "Content-Length: 17293" }
Смысл решения понятен, остается его только реализовать: получаем заголовки и вытаскиваем из полученного массива информацию «X-Powered-By»
Код. Как определить версию php без доступа к сайту
Для удобства решение оформлено в функцию:
/** * Определяем на чем работает сайт * * @var $url - string URL сайта * * @return - string результат проверки */ function getPoweredBy($url){ $tmp = parse_url($url); $stream = @fopen($url, 'rb'); // открываем сайт if(!$stream){ return "Сайт не отвечает!"; } $array = stream_get_meta_data($stream); // получаем заголовки $info = false; // находим информацию о X-Powered-By foreach($array["wrapper_data"] as $k=>$v){ if(strpos($v, 'X-Powered-By:') !== false){ $info = explode('X-Powered-By:', $v); } } // вернем результат if($info){ $powered_by = trim($info[1]); return $powered_by; }else{ return "Не известно!"; } }
И пример использования этой функции:
// пример использования $url = 'http://vk-book.ru'; $result = getPoweredBy($url); print_r ($result);
Не работает код
Выдает ошибку Parse error: syntax error, unexpected ‘=’, expecting ‘)’ in /home/anleclub/anle/anlemag.ru/11.php on line 18
Подскажите как исправить.
PHP на сайте 5,3,27
Сам код 11.php
/**
* Определяем на чем работает сайт
*
* @var $url — string URL сайта
*
* @return — string результат проверки
*/
<?php
function getPoweredBy($url){
$tmp = parse_url($url);
$stream = @fopen($url, 'rb'); // открываем сайт
if(!$stream){
return "Сайт не отвечает!";
}
$array = stream_get_meta_data($stream); // получаем заголовки
$info = false;
// находим информацию о X-Powered-By
foreach($array["wrapper_data"] as $k=>$v){
if(strpos($v, 'X-Powered-By:') !== false){
$info = explode('X-Powered-By:', $v);
}
}
// вернем результат
if($info){
$powered_by = trim($info[1]);
return $powered_by;
}else{
return "Не известно!";
}
}
// пример использования
$url = 'http://http://anlemag.ru';
$result = getPoweredBy($url);
print_r ($result);
// пример использования
$url = 'http://themeforest.net/item/kids-store-responsive-prestashop-centrikids/full_screen_preview/6909610';
$result = getPoweredBy($url);
print_r ($result);
?
Спасибо но все это очень сложно для новичков.
Делается все куда проще. Есть специальная функция в php, извлекающая заголовки!
Гуглите, яндексите…
подскажите, какие это функции?
Говно код, не отображает ни какую инфу(