Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Прогноз погоды (https://javascript.ru/forum/project/81557-prognoz-pogody.html)

ALFRED450 17.12.2020 22:34

Цитата:

Сообщение от laimas (Сообщение 531847)
Да наплевать что она меняется, это ведь для проверки, потому, что rtrim($show_weather.''), даже слов нет чтобы выразить какой это бред. Вот так работает?

$bg->annotateImage($draw, $weather_text_pixel_x, $weather_text_pixel_y, 0, '12°C');


А чем это отличается от $show_weather? Выясняйте, анализируйте, но не пишите чепухи в коде.

да работает

так этот бред еще и работает))) rtrim($show_weather.'')
точнее rtrim($show_weather.'')); стоит убрать ' ' и все не работает

laimas 18.12.2020 07:08

Вложений: 1
Цитата:

Сообщение от ALFRED450
стоит убрать ' ' и все не работает
('$cityname')

Сколько можно повторять одно и тоже:

$cityname = "Город"; //это переменная со строковым значением, и ее вывод где-то, во что-то, это будет Город

'$cityname' - это строка, которая так и будет выведена $cityname.

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

Это ваши данные, и вывод температуры как вам хочется, а вывод ее один в один по примеру из руководства.

$data = json_decode(file_get_contents('https://api.openweathermap.org/data/2.5/weather?id=498817&units=metric&appid=42633145136a94711f8d879deade6bf1&lang=ru'));
$show_weather = round($data->main->temp) . '°C';

$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel('white');
$image->newImage(100, 80, $pixel);
$draw->setFont('fonts/tahoma.ttf');
$draw->setFontSize(30);
$image->annotateImage($draw, 10, 45, 0, $show_weather);
$image->setImageFormat('png');
header('Content-type: image/png');
echo $image;


А это результат работы. Выполните этот код отдельно, я сомневаюсь, что у вас он не выполнится должным образом, если вы не добавите в него эту дурь rtrim($show_weather . ' ').

ALFRED450 18.12.2020 08:59

Вложений: 1
Цитата:

Сообщение от laimas (Сообщение 531853)
Сколько можно повторять одно и тоже:

$cityname = "Город"; //это переменная со строковым значением, и ее вывод где-то, во что-то, это будет Город

'$cityname' - это строка, которая так и будет выведена $cityname.

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

Это ваши данные, и вывод температуры как вам хочется, а вывод ее один в один по примеру из руководства.

$data = json_decode(file_get_contents('https://api.openweathermap.org/data/2.5/weather?id=498817&units=metric&appid=42633145136a94711f8d879deade6bf1&lang=ru'));
$show_weather = round($data->main->temp) . '°C';

$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel('white');
$image->newImage(100, 80, $pixel);
$draw->setFont('fonts/tahoma.ttf');
$draw->setFontSize(30);
$image->annotateImage($draw, 10, 45, 0, $show_weather);
$image->setImageFormat('png');
header('Content-type: image/png');
echo $image;


А это результат работы. Выполните этот код отдельно, я сомневаюсь, что у вас он не выполнится должным образом, если вы не добавите в него эту дурь rtrim($show_weather . ' ').

https://javascript.ru/forum/attachme...d=160827110 7

ALFRED450 18.12.2020 09:21

вот вы пишите
$cityname = "Город"; //это переменная со строковым значением, и ее вывод где-то, во что-то, это будет Город

'$cityname' - это строка, которая так и будет выведена $cityname.

как в таком случае выводится дата, время, неделя не превращая ее в рисунок
вот пример:
if($view_date){
	$draw->setFont(BASEPATH."/font/".$font_date);
	$draw->setTextAlignment(Imagick::ALIGN_LEFT);
    $draw->setFontSize($date_font_size);
    $draw->setFillColor("rgb(".$date_font_color.")");
    $bg->annotateImage($draw, $date_text_pixel_x, $date_text_pixel_y, 0, mb_strtoupper(date('d ') . $monthes[(date('n'))] . date(' Y')));

переменная $monthes подставляет свое тексты из источника
почему $cityname не может быть тем же источником
ведь она реально работает но в связке mb_strtoupper или rtrim

ALFRED450 18.12.2020 09:30

попробуйте на данный пример применить свой метод

ALFRED450 18.12.2020 09:35

Хоть дичь что получилась и работает я готов заплатить за ваш нормальный рабочий по всем правилам вариант.
В измененном работает, изменяет координаты, размеры, но единственное не отключается по команде как в этом рабочем примере:
//[true - разрешить false - запретить]
$view_last_subscriber = true; // Последний подписчик
$view_today = false; // День недели
$view_date = true; // Число
$view_clock = true; // Часы

laimas 18.12.2020 11:48

Делайте что хотите, а устал уже, так как писать такую чушь и удивляться почему нет текста

Цитата:

Сообщение от ALFRED450
да с датой я случайно кинул, ну сама переменная $cityname показывает город и пишет в верхнем регистре ТУЛА, а убираешь функцию летит ошибка
$bg->annotateImage($draw, $city_text_pixel_x, $city_text_pixel_y, ('$cityname');

вот так не отображается текст

затем опять теми же граблями

Цитата:

Сообщение от ALFRED450
вот вы пишите
$cityname = "Город"; //это переменная со строковым значением, и ее вывод где-то, во что-то, это будет Город

'$cityname' - это строка, которая так и будет выведена $cityname.

как в таком случае выводится дата, время, неделя не превращая ее в рисунок

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

ALFRED450 18.12.2020 12:36

Цитата:

Сообщение от laimas (Сообщение 531864)
Делайте что хотите, а устал уже, так как писать такую чушь и удивляться почему нет текста


Цитата:

да с датой я случайно кинул, ну сама переменная $cityname показывает город и пишет в верхнем регистре ТУЛА, а убираешь функцию летит ошибка
$bg->annotateImage($draw, $city_text_pixel_x, $city_text_pixel_y, ('$cityname');
я видел что так не верно и наблюдал результат что прописалось $cityname
не хочу вступать в конфронтацию, так как прекрасно понимаю, что нуб в этом, но вы опять же называете чушью, то что РАБОТАЕТ и ОТОБРАЖАЕТ результат, но говорите что это неправильно.
Неправильно разве может работать
$bg->annotateImage($draw, $city_text_pixel_x, $city_text_pixel_y, 0, mb_strtoupper($cityname.' '));

повторяю ЭТО работает

ALFRED450 18.12.2020 12:43

Вложений: 1
https://javascript.ru/forum/attachme...d=160828456 4

laimas 18.12.2020 12:48

Цитата:

Сообщение от ALFRED450
но вы опять же называете чушью, то что РАБОТАЕТ

Вам надо выводить в верхнем регистре все? Выводе на здоровье, никто не запрещает.
Полнейшая чушь это ('$cityname') и "лечение" этого как mb_strtoupper(...). И если первое вам нужно, то зачем вы эту дурь к температуре клеите?

Ни кто с вами и не собирается вести военные действия, просто вам нужно начинать учить язык с его основ, а не хвататься сразу за то, в чем вы разобраться не можете. Это JS, но суть та же, выполните:

var $cityname = 'Город';
alert($cityname + '\n' + '$cityname')

Вопрос - почему во второй строке не выводит Город?


Часовой пояс GMT +3, время: 03:35.