Введение
В этой небольшой статье я хочу показать как определить версию 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, извлекающая заголовки!
Гуглите, яндексите…
подскажите, какие это функции?
Говно код, не отображает ни какую инфу(