Здравствуйте. такой вопрос: Получаю статус сайта <?php $fp = @fsockopen("site.ru", 1234); if (!$fp) { echo "<b><font color='red'> Оффлайн</font></b>"; } else { echo "<b><font color='green'> Онлайн</font></b>"; } ?> но так прокатывает для html изменил в php одной строкой $statserv = @fsockopen("site.ru", 1234) ? 'online' : 'offline'; соответственно по результату получаю текст онлайн или оффлайн переменная $statserv будет прорисовываться в рисунок $bg->annotateImage($draw, $statserv_text_pixel_x, $statserv_text_pixel_y, 0, $statserv); прошу помочь как $statserv задать цвет
забыл упомянуть, цвет конечно назначается, но он в моем случае один, независимо от результата онлайн или оффлайн, а хотелось бы чтоб различалось. Вот так назначаю цвет. $draw->setFillColor("rgb(".$statserv_font_color.")");
так он назначен, только одним цветом, признаться как сделать двумя не знаю PHP: $statserv_font_color = '0,0,0'; не могли бы вы показать как будет верно
значит до текста догадались, а с цветом никак??? ))) то же самое ... только второй раз лучше не дергать сайт, а на основании statserv PHP: $statserv_font_color = ($statserv == 'on') ? '0,0,0' : '10.100.200';
не изменился цвет при отключении сервера $statserv_font_color = ($statserv == 'on') ? '160,0,0' : '40,120,0'; https://vk.com/vorkuta_commfort оффлайн должен быть красным
сработало когда оставил пустое значение $statserv_font_color = ($statserv == ' ') ? '160,0,0' : '40,120,0'; так верно будет? ps поспешил, не меняет, становится красным, при включении сервера красным горит уже онлайн
Вам виднее, но надо понимать что и за чем по порядку ставить. Какбэ понятно что цвет определить надо после задания текста
$statserv = @fsockopen("192.168.1.1", 1234) ? 'online' : 'offline'; выводит это все так: $draw->setFillColor("rgb(".$statserv_font_color.")"); настройки такие: $statserv_font_color = ($statserv == 'on') ? '160,0,0' : '40,120,0'; первое значение - красный, второе зеленый при доступности адреса как положено online - зеленый отключаю сервер (порт не доступен) offline - все равно зеленый так как все таки правильно будет
блин.. ну неужели даже чуточку подумать никак? но не посмотрел я статусы какие у вас... но понятно же PHP: $statserv_font_color = ($statserv == 'online') ? '160,0,0' : '40,120,0';
на другом форуме посоветовали PHP: $statserv_font_color = ($statserv === 'online') ? '160,0,0' : '40,120,0'; тоже не помогло
проверяю порт PHP: $statserv = @fsockopen("192.168.1.10", 1234 ? 'online' : 'offline'; совмещаю с обложкой PHP: if($view_statserv){ $draw->setFont(BASEPATH."/font/".$font_statserv); $draw->setTextAlignment(Imagick::ALIGN_LEFT); $draw->setFontSize($statserv_font_size); $draw->setFillColor("rgb(".$statserv_font_color.")"); $bg->annotateImage($draw, $statserv_text_pixel_x, $statserv_text_pixel_y, 0, $statserv); } настройки [ PHP: $statserv_font_size = 24; $statserv_font_color = ($statserv === 'online') ? '160,0,0' : '40,120,0'; // Цвет текста статуса сервера $statserv_text_pixel_x = 405; // Координаты по оси Х $statserv_text_pixel_y = 184; // Координаты по оси Y
подсказали такой вариант и он работает PHP: if(@fsockopen("192.168.1.10", 1234)) { $statserv = 'online'; $statserv_font_color = '40,120,0'; } else { $statserv = 'offline'; $statserv_font_color = '160,0,0'; } а можно этот код в одну строку сделать?
Если от одного условия зависят две переменные, то нечего мудрить: PHP: if(@fsockopen(...)) { $status = 'on'; $color = 'green'; } else { $status = 'off'; $color = 'red'; } это я ваш пример приводил на другом форуме, и там не говорили вам нельзя --- Добавлено --- Прошелся по форуму ваших ответов, ваш последний не оригинальный. Не сомневаюсь в ваших познаниях, но помочь без излишнего ... можно было бы. Не все на земле программисты, вы же тоже в другой области можете задавать вопросы. С наступающим всех! Всего доброго!
С наступающим! Сорян если обидел.... но когда по три раза просишь выложить ВЕСЬ код а не произвольные куски, которые непонятно как расположены хронологически - нервы не выдерживают )))) Ибо разместили не в разделе "Для новичков" или "Сделайте за меня", поэтому подразумевалось что адекватно минимум знаете/понимаете PHP: $statserv = @fsockopen("192.168.1.10", 1234 ? 'online' : 'offline'; $statserv_font_color = ($statserv === 'online') ? '160,0,0' : '40,120,0'; Надо было вот в такой последовательности....
я выше писал, что так не прокатило PHP: $statserv_font_color = ($statserv === 'online') ? '160,0,0' : '40,120,0'; остановился на версии которую предложили на другом форуме, вроде работает спасибо за терпение и с новым годом --- Добавлено --- есть конечно еще один вопрос, вот получаю я направление ветра с openweathermap PHP: $deg=$weather->wind->deg; //получаем направление ветра в градусах указав переменную $deg я получу лишь цифры в виде например 165 есть скрипт PHP: function getCardinalDirection(angle) { const directions = ['↑ N', '↗ NE', '→ E', '↘ SE', '↓ S', '↙ SW', '← W', '↖ NW']; return directions[Math.round(angle / 45) % 8]; } возможно надо и это PHP: $winds = Array( 'N'=>'С', 'NNW'=>'С/СЗ', 'NW'=>'СЗ', 'WNW'=>'З/СЗ', 'W'=>'З', 'WSW'=>'З/ЮЗ', 'SW'=>'ЮЗ', 'SSW'=>'Ю/ЮЗ', 'S'=>'Ю', 'SSE'=>'Ю/ЮВ', 'SE'=>'ЮВ', 'ESE'=>'В/ЮВ', 'E'=>'В', 'ENE'=>'В/СВ', 'NE'=>'СВ', 'NNE'=>'С/СВ' ); как мне правильно совместить чтобы при написании PHP: if($view_deg){ $draw->setFont(BASEPATH."/font/".$font_deg); $draw->setTextAlignment(Imagick::ALIGN_CENTER); $draw->setFontSize($deg_font_size); $draw->setFillColor("rgb(".$deg_font_color.")"); $bg->annotateImage($draw, $deg_text_pixel_x, $wind_text_pixel_y, 0, $deg); } $deg в итоге равнялся ↑ С
не надо совмещать... PHP: const directions = ['↑ N', '↗ NE', '→ E', '↘ SE', '↓ S', '↙ SW', '← W', '↖ NW']; Вместо N ,NE итд ... замените русскими буквами и используйте эту функцию
по первому примеру не получилось, константа вызвала ошибку сделал иначе , но получил лишь 200 градусов вместо направления PHP: function getWindDirection($deg) { $deg = (string)$deg; $deg_direction = array('s'=>'↑ ю','n'=>'↓ с','w'=>'→ з','e'=>'← в','sw'=>'↗ юз','se'=>'↖ юв','nw'=>'↘ сз','ne'=>'↙ св'); return $deg_direction[$deg]; } почему не правильно? или он просто берет переменную которую получает изначально? PHP: $url = "http://api.openweathermap.org/data/2.5/weather?id=".$cityId."&lang=".$lang."&units=".$units."&APPID=" . $apiKey; // делаем запрос к апи $contents = file_get_contents($url); $weather=json_decode($contents); $deg=$weather->wind->deg; //получаем направление ветра в градусах PHP: if($view_deg){ $draw->setFont(BASEPATH."/font/".$font_deg); $draw->setTextAlignment(Imagick::ALIGN_CENTER); $draw->setFontSize($deg_font_size); $draw->setFillColor("rgb(".$deg_font_color.")"); $bg->annotateImage($draw, $deg_text_pixel_x, $deg_text_pixel_y, 0, $deg); } $bg->annotateImage($draw, $deg_text_pixel_x, $deg_text_pixel_y, 0, $deg);
нда.. тяжело надо понимать что такое функция и как ее использовать если есть функция getWindDirection() то для того чтобы получить ее результат нужно ее вызвать с параметром параметр - это то что передается в функцию в вашем случае PHP: $a = getWindDirection($deg); $a - переменная которая получит результат работы функции, $deg - ваше начальное значение, для которого вы вычисляете текстовое представление, в самой функции параметр может называться хоть как, можно например $angle