15.12.2020, 09:15
|
Аспирант
|
|
Регистрация: 07.12.2020
Сообщений: 72
|
|
Сообщение от laimas
|
А зачем столько лишнего писать, что используется только раз?
$show_weather=$weather->main->temp;
$sw_weather = $w_weather. "°C";
$w_weather = ceil($show_weather);
и может все-таки round? И сразу при выводе, без создания не понятно для чего промежуточных переменных.
round($weather->main->temp) . '°C'
|
убирал зачеркнутое и вставил ваше, не показало температуру
а переменные мне нужны будут в дальнейшей прорисовке результата в графический формат
как ваш пример реализовать покажите целиком:
$show_weather=$weather->main->temp;
$icon=$weather->weather[0]->icon.".png";
$today = date("j.m.Y, H:i");
$cityname = $weather->name;
$wind=$weather->wind->speed." м/с";
$humidity=$weather->main->humidity."%";
$w_weather = round($show_weather);
$sw_weather = $w_weather. "°C";
echo $today."<br />".
$cityname."<br />".
"Влажность: ".$humidity."<br />".
"Ветер: ".$wind."<br />".
$sw_weather."<br />
<img src='http://openweathermap.org/img/wn/".$icon."' />";
Последний раз редактировалось ALFRED450, 15.12.2020 в 09:29.
|
|
15.12.2020, 09:21
|
Аспирант
|
|
Регистрация: 07.12.2020
Сообщений: 72
|
|
подскажите как ссылку на на путь превратить в переменную правильно, чтоб использовать $sw_weather и $url_icon
чтоб в ряд их выстроить
|
|
15.12.2020, 09:24
|
Аспирант
|
|
Регистрация: 07.12.2020
Сообщений: 72
|
|
понимаю, что пытаюсь хлебать щи не умея пользоваться ложкой)), но в полтиник трудно дается, то чему не учили, но интересно зараза ))
|
|
15.12.2020, 09:33
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Ну если создание переменной, это значение из объекта плюс добавление строки, и для использования не только при выводе, тогда да, это оправдано.
Сообщение от ALFRED450
|
убирал зачеркнутое и вставил ваше, не показало температуру
|
Выводите вы просто совсем не то. Даже если создание переменных для неоднократного использования, то какой смысл получить сначала:
$show_weather = $weather->main->temp;
затем
$w_weather = ceil($show_weather);
затем
$sw_weather = $w_weather. "°C";
чтобы вывести
$sw_weather."<br />
это что за баталии такие? Если нужна температура для вывода в строку и для графики, то почему не
$weather = round($weather->main->temp) . '°C';
и вывод с строке
. $weather . "<br />
и где-то для графики $weather. Прочтите еще раз и внимательно о ceil(), это ли нужно использовать?
Если вывод, это конкатенация строк и переменных, то строки нужно заключать в одинарные кавычки, а не в двойные, потому как в РНР вывод в одинарных и двойных, это различие, и вы просто заставляете парсер производить дополнительный бессмысленный разбор строк. Читайте документацию.
PS. Кстати, температура отдается за определенную дату, которая указана в объекте, то есть текущая дата не обязательно может совпадать с датой за которую получены данные. А значит не
dete(format)
а
date(format, $weather->dt)
Последний раз редактировалось laimas, 15.12.2020 в 09:38.
|
|
15.12.2020, 09:46
|
Аспирант
|
|
Регистрация: 07.12.2020
Сообщений: 72
|
|
Сообщение от laimas
|
Ну если создание переменной, это значение из объекта плюс добавление строки, и для использования не только при выводе, тогда да, это оправдано.
Выводите вы просто совсем не то. Даже если создание переменных для неоднократного использования, то какой смысл получить сначала:
$show_weather = $weather->main->temp;
затем
$w_weather = ceil($show_weather);
затем
$sw_weather = $w_weather. "°C";
чтобы вывести
$sw_weather."<br />
это что за баталии такие? Если нужна температура для вывода в строку и для графики, то почему не
$weather = round($weather->main->temp) . '°C';
и вывод с строке
. $weather . "<br />
и где-то для графики $weather. Прочтите еще раз и внимательно о ceil(), это ли нужно использовать?
Если вывод, это конкатенация строк и переменных, то строки нужно заключать в одинарные кавычки, а не в двойные, потому как в РНР вывод в одинарных и двойных, это различие, и вы просто заставляете парсер производить дополнительный бессмысленный разбор строк. Читайте документацию.
PS. Кстати, температура отдается за определенную дату, которая указана в объекте, то есть текущая дата не обязательно может совпадать с датой за которую получены данные. А значит не
dete(format)
а
date(format, $weather->dt)
|
спасибо, сократил, но все же:
$show_weather = round($weather->main->temp) . '°C';
*!*
$icon=$weather->weather[0]->icon.".png";
$today = date("j.m.Y, H:i");
$cityname = $weather->name;
$wind=$weather->wind->speed." м/с";
$humidity=$weather->main->humidity."%";
*/!*
echo $today."<br />".
$cityname."<br />".
"Влажность: ".$humidity."<br />".
"Ветер: ".$wind."<br />".
$show_weather."<br />
<img src='http://openweathermap.org/img/wn/".$icon."' />";
оставил переменную $show_weather т.к. $weather нужен для получения других данных и если использовать, другие данные ломаются
|
|
15.12.2020, 10:06
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Обращайтесь к документации своей CMS, а я же не запоминаю наизусть все, с чем когда либо сталкивался.
|
|
15.12.2020, 21:07
|
Аспирант
|
|
Регистрация: 07.12.2020
Сообщений: 72
|
|
Прошу помочь еще в одной ситуации
имея переменую $show_weather получаем погоду
и функцией ниже объединяем текст с изображением
if($show_weather){
$draw->setFont(BASEPATH."/font/".$font_weather);
$draw->setTextAlignment(Imagick::ALIGN_LEFT);
$draw->setFontSize($weather_font_size);
$draw->setFillColor("rgb(".$weather_font_color.")");
$bg->annotateImage($draw, $weather_text_pixel_x, $weather_text_pixel_y, 0, mb_strtoupper($show_weather.' ', 'UTF-8'));
}
вариант работает
Не разобрался тут:
$url_icon = '<img src="http://openweathermap.org/img/wn/'.$icon.' "/>';
как с переменной $url_icon которая = http://openweathermap.org/img/wn/13n.png
сделать подобную функцию, для объединения одного изображения с другим
*!*
if($url_icon){
$bg->compositeImage($url_icon, Imagick::COMPOSITE_DEFAULT, $weather_icon_pixel_x, $weather_icon_pixel_y);
}
*/!*
Последний раз редактировалось ALFRED450, 15.12.2020 в 21:53.
|
|
15.12.2020, 22:37
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от ALFRED450
|
<img src="http://openweathermap.org/img/wn/'.$icon.' "/>
|
Это не url, и прежде чем работать с изображениями, его нужно открыть как ресурс. Открывайте и работайте.
|
|
15.12.2020, 23:08
|
Аспирант
|
|
Регистрация: 07.12.2020
Сообщений: 72
|
|
Сообщение от laimas
|
Это не url, и прежде чем работать с изображениями, его нужно открыть как ресурс. Открывайте и работайте.
|
подсказку в виде примера можно? в какую сторону двигаться
|
|
15.12.2020, 23:26
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от ALFRED450
|
подсказку в виде примера можно?
|
Ну какая еще подсказка нужна? URL изображения известен? Загружайте его на сервер, затем открывайте его в ImageMagick, работайте с ним.
|
|
|
|