Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 15.12.2020, 09:15
Аспирант
Отправить личное сообщение для ALFRED450 Посмотреть профиль Найти все сообщения от ALFRED450
 
Регистрация: 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.
Ответить с цитированием
  #12 (permalink)  
Старый 15.12.2020, 09:21
Аспирант
Отправить личное сообщение для ALFRED450 Посмотреть профиль Найти все сообщения от ALFRED450
 
Регистрация: 07.12.2020
Сообщений: 72

подскажите как ссылку на на путь превратить в переменную правильно, чтоб использовать $sw_weather и $url_icon
чтоб в ряд их выстроить
Ответить с цитированием
  #13 (permalink)  
Старый 15.12.2020, 09:24
Аспирант
Отправить личное сообщение для ALFRED450 Посмотреть профиль Найти все сообщения от ALFRED450
 
Регистрация: 07.12.2020
Сообщений: 72

понимаю, что пытаюсь хлебать щи не умея пользоваться ложкой)), но в полтиник трудно дается, то чему не учили, но интересно зараза ))
Ответить с цитированием
  #14 (permalink)  
Старый 15.12.2020, 09:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ну если создание переменной, это значение из объекта плюс добавление строки, и для использования не только при выводе, тогда да, это оправдано.

Сообщение от 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 (permalink)  
Старый 15.12.2020, 09:46
Аспирант
Отправить личное сообщение для ALFRED450 Посмотреть профиль Найти все сообщения от ALFRED450
 
Регистрация: 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 нужен для получения других данных и если использовать, другие данные ломаются
Ответить с цитированием
  #16 (permalink)  
Старый 15.12.2020, 10:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Обращайтесь к документации своей CMS, а я же не запоминаю наизусть все, с чем когда либо сталкивался.
Ответить с цитированием
  #17 (permalink)  
Старый 15.12.2020, 21:07
Аспирант
Отправить личное сообщение для ALFRED450 Посмотреть профиль Найти все сообщения от ALFRED450
 
Регистрация: 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.
Ответить с цитированием
  #18 (permalink)  
Старый 15.12.2020, 22:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ALFRED450
<img src="http://openweathermap.org/img/wn/'.$icon.' "/>
Это не url, и прежде чем работать с изображениями, его нужно открыть как ресурс. Открывайте и работайте.
Ответить с цитированием
  #19 (permalink)  
Старый 15.12.2020, 23:08
Аспирант
Отправить личное сообщение для ALFRED450 Посмотреть профиль Найти все сообщения от ALFRED450
 
Регистрация: 07.12.2020
Сообщений: 72

Сообщение от laimas Посмотреть сообщение
Это не url, и прежде чем работать с изображениями, его нужно открыть как ресурс. Открывайте и работайте.
подсказку в виде примера можно? в какую сторону двигаться
Ответить с цитированием
  #20 (permalink)  
Старый 15.12.2020, 23:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ALFRED450
подсказку в виде примера можно?
Ну какая еще подсказка нужна? URL изображения известен? Загружайте его на сервер, затем открывайте его в ImageMagick, работайте с ним.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Карта погоды Яндекс на сайт spinastr Общие вопросы Javascript 4 25.04.2018 20:05
Как вывести свои иконки погоды? spinastr Общие вопросы Javascript 18 01.03.2018 14:07
Bспользование стороннего API погоды ojv08612 Node.JS 0 28.02.2017 08:52
Разработка с помощью Jquery. Скрипт смены иконки погоды 2K2L Мобильный JavaScript 1 06.04.2015 18:02
Скрипт для погоды. Типа плеера. Ruskat Общие вопросы Javascript 1 28.07.2011 02:44