Добрый день, после обновления версии php c 5.6 на 7.4 перестал работать плагин PHP Compatibility Checker выдает ошибку FILE: /home/site/public_html/wp-content/plugins/vk-photos/api/vkapi.class.php --------------------------------------------------------------------------------------------- FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE --------------------------------------------------------------------------------------------- 16 | WARNING | Use of deprecated PHP4 style class constructor is not supported since PHP 7. подскажите что тут нужно исправить ? PHP: class vkapi { var $access_token; var $api_url; function vkapi($api_url = 'api.vk.com/method/') { if (!strstr($api_url, 'https://')) $api_url = 'https://'.$api_url; $this->api_url = $api_url; } function api($method,$params=false) { if (!$params) $params = array(); $params["v"] = "5.75"; ksort($params); $sig = ''; foreach($params as $k=>$v) { $sig .= $k.'='.$v; } $query = $this->api_url.$method.'?'.$this->params($params); if (function_exists('curl_init')) { $ch = curl_init(); @curl_setopt($ch,CURLOPT_URL,$query); @curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); @curl_setopt($ch,CURLOPT_TIMEOUT, 2); //задает время на соединение с сервером @curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 2); //я не скрипт, я браузер опера @curl_setopt($ch, CURLOPT_USERAGENT, 'Opera 10.00'); //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); @curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false ); @curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false ); $res = @curl_exec($ch); @curl_close($ch); // контрольный выстрел в голову if(empty($res)){ $res = @file_get_contents($query); } }else{ $res = @file_get_contents($query); } return @json_decode($res, true); } function params($params) { $pice = array(); foreach($params as $k=>$v) { $pice[] = $k.'='.urlencode($v); } return implode('&',$pice); } } От модератора. Код оформляется кнопкой </>
В этом не силен, а поддержка плагина прекращена, если не сложно можете показать где в коде исправить ?
@Leon977 php 7.4 PHP: <?php class vkapi { //var $access_token; protected string $api_url; public function __construct() {} public function vkapi( string $api_url = 'https://api.vk.com/method/' ): void { $this -> api_url = ( empty ( parse_url ( $api_url, PHP_URL_SCHEME ) ) ? 'https://' . $api_url ? $api_url ); } public function api( string $method, array $params = [] ): array { $params['v'] = 5.75; $query = $this -> api_url . $method . '?' . http_build_query ( $params ); $ch = curl_init(); curl_setopt ( $ch, CURLOPT_URL, $query ); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt ( $ch, CURLOPT_TIMEOUT, 2 ); //задает время на соединение с сервером curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 2 ); // я браузер curl_setopt ( $ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0' ); //curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, false ); curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false ); $res = curl_exec ( $ch ) ?: '[]'; curl_close ( $ch ); return json_decode ( $res, true ); } }
заменил но теперь получаю ошибку: Parse error: syntax error, unexpected ')' in /home/site/public_html/wp-content/plugins/vk-photos/api/vkapi.class.php on line 21
--- Добавлено --- PHP: $this -> api_url = ( empty ( parse_url ( $api_url, PHP_URL_SCHEME ) ) ? 'https://' . $api_url : $api_url );
Интерпретатор неожиданно встретил закрывающую скобку, которой не должно быть в языковой конструкции на 21 строке. Неаккуратно заменили. Полученный код покажите, если уж редактор, который используете в работе не подсвечивает подобные несуразности...
Не всегда ошибки до точности указывают на проблемы @Sail Например: Достаточно забыть точку с запятой в одной строке - как Интерпретатор начнет ругаться на следующую строку.