18.12.2020, 13:27
|
Аспирант
|
|
Регистрация: 07.12.2020
Сообщений: 72
|
|
Сообщение от laimas
|
Вам надо выводить в верхнем регистре все? Выводе на здоровье, никто не запрещает.
Полнейшая чушь это ('$cityname') и "лечение" этого как mb_strtoupper(...). И если первое вам нужно, то зачем вы эту дурь к температуре клеите?
Ни кто с вами и не собирается вести военные действия, просто вам нужно начинать учить язык с его основ, а не хвататься сразу за то, в чем вы разобраться не можете. Это JS, но суть та же, выполните:
var $cityname = 'Город';
alert($cityname + '\n' + '$cityname')
Вопрос - почему во второй строке не выводит Город?
|
так не верно:
$cityname = 'Город';
echo
$cityname;
|
|
18.12.2020, 13:42
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от ALFRED450
|
так не верно:
|
Что именно не верно?
А вот так в обеих случаях будет вывод не строки $cityname, а значения переменной $cityname.
var $cityname = 'Город';
alert($cityname + '\n' + `${$cityname}`)
Такая возможность появилась в JS не так давно, и при этом строка заключена в обратные косые кавычки. В РНР вывод значений переменных (выполнение кода) в строке доступно давно, но возможно только тогда когда строка заключена не в одинарные, а в двойные кавычки. Именно поэтому простые строки в РНР лучше заключать в одинарные, а не двойные кавычки, чтобы избавить парсер от бесполезного разбора строки. Читайте об этом в разделе руководства по ссылке.
Но в данном случае поступать так "$cityname" вместо $cityname при передачи строки в функцию, это такая же глупость, как и rtrim(...) ради вывода. Если вы такие грабли в коде пишите, значит что-то вы упустили. Чудес не бывает, они легко объясняются незнанием, непониманием, невниманием или элементарными ошибками. Мы люди и нам свойственно ошибаться, поэтому нужно внимательно изучить то, что вы написали, проверить что и как вы отдаете в функцию и т.п., и тогда вы обнаружите свой же баг. Именно свой, ибо причиной "такой странности" являетесь вы, а никак не язык РНР или его расширения.
Скачивайте руководство РНР, оно в CHM формате на многих языках, скачивайте то что с примерами, и изучайте с самого начала, только так будут познания и опыт, через попу не получится.
Последний раз редактировалось laimas, 18.12.2020 в 13:45.
|
|
18.12.2020, 13:47
|
Аспирант
|
|
Регистрация: 07.12.2020
Сообщений: 72
|
|
Сообщение от laimas
|
Что именно не верно?
А вот так в обеих случаях будет вывод не строки $cityname, а значения переменной $cityname.
var $cityname = 'Город';
alert($cityname + '\n' + `${$cityname}`)
Такая возможность появилась в JS не так давно, и при этом строка заключена в обратные косые кавычки. В РНР вывод значений переменных (выполнение кода) в строке доступно давно, но возможно только тогда когда строка заключена не в одинарные, а в двойные кавычки. Именно поэтому простые строки в РНР лучше заключать в одинарные, а не двойные кавычки, чтобы избавить парсер от бесполезного разбора строки. Читайте об этом в разделе руководства по ссылке.
Но в данном случае поступать так "$cityname" вместо $cityname при передачи строки в функцию, это такая же глупость, как и rtrim(...) ради вывода. Если вы такие грабли в коде пишите, значит что-то вы упустили. Чудес не бывает, они легко объясняются незнанием, непониманием, невниманием или элементарными ошибками. Мы люди и нам свойственно ошибаться, поэтому нужно внимательно изучить то, что вы написали, проверить что и как вы отдаете в функцию и т.п., и тогда вы обнаружите свой же баг. Именно свой, ибо причиной "такой странности" являетесь вы, а никак не язык РНР или его расширения.
Скачивайте руководство РНР, оно в CHM формате на многих языках, скачивайте то что с примерами, и изучайте с самого начала, только так будут познания и опыт, через попу не получится.
|
))) 7 страниц пытки чтоб ......$city_text_pixel_y, 0, "$cityname");
взять просто в двойные кавычки. Спасибо большое - это не сарказм.
Даже "аспирантом" стал ))) взял в двойные, чтобы избавить себя от этого звания
Последний раз редактировалось ALFRED450, 18.12.2020 в 13:50.
|
|
18.12.2020, 13:54
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от ALFRED450
|
взять просто в двойные кавычки
|
Опять 25 - не нужно вообще никаких кавычек!
Есть функция, которая ожидает строку, пусть так fun(string). Если вы пишите в коде явно с передачей строки "Текст", то и должны писать fun("Текст") вызывая функцию. Но если эта строка ранее определена в переменной $var, то вызов будет fun($var), обрамлять при этом имя переменной кавычками не надо, это дурь не иначе.
|
|
18.12.2020, 14:10
|
Аспирант
|
|
Регистрация: 07.12.2020
Сообщений: 72
|
|
Сообщение от laimas
|
Опять 25 - не нужно вообще никаких кавычек!
Есть функция, которая ожидает строку, пусть так fun(string). Если вы пишите в коде явно с передачей строки "Текст", то и должны писать fun("Текст") вызывая функцию. Но если эта строка ранее определена в переменной $var, то вызов будет fun($var), обрамлять при этом имя переменной кавычками не надо, это дурь не иначе.
|
окончательно запутался, как китайская грамота
if($cityname){ //город
$draw->setFont(BASEPATH."/font/".$font_city);
$draw->setTextAlignment(Imagick::ALIGN_LEFT);
$draw->setFontSize($city_font_size);
$draw->setFillColor("rgb(".$city_font_color.")");
$bg->annotateImage($draw, $city_text_pixel_x, $city_text_pixel_y, 0, "$cityname");
что куда писать?
|
|
18.12.2020, 14:19
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
$bg->annotateImage($draw, $city_text_pixel_x, $city_text_pixel_y, 0, $cityname);
На черта вы упорно переменную обрамляете в кавычки? И это когда рядом $city_text_pixel_y без этой чуши и нормально указывается.
|
|
18.12.2020, 14:28
|
Аспирант
|
|
Регистрация: 07.12.2020
Сообщений: 72
|
|
Сообщение от laimas
|
$bg->annotateImage($draw, $city_text_pixel_x, $city_text_pixel_y, 0, $cityname);
На черта вы упорно переменную обрамляете в кавычки? И это когда рядом $city_text_pixel_y без этой чуши и нормально указывается.
|
Верно, блин, ну пробовал я вроде так и не получалось.Убрал, работает.
Я выше просил, а как сделать чтобы
if($cityname){ //город
отключался как сделано со временем, днем и неделей
$view_today = false; // День недели
$view_date = true; // Число
$view_clock = true; // Часы
$cityname = false // не отключает
|
|
18.12.2020, 14:38
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от ALFRED450
|
$cityname = false // не отключает
|
Понятия не имею, разбирайтесь, выведите в браузер значение переменной, в общем анализируйте.
|
|
18.12.2020, 16:32
|
Аспирант
|
|
Регистрация: 07.12.2020
Сообщений: 72
|
|
Сообщение от laimas
|
Понятия не имею, разбирайтесь, выведите в браузер значение переменной, в общем анализируйте.
|
разобрался, посмотрел внимательно на примеры в коде и понял, что переменные которые в названии и те что выполняются должны иметь разное название
if( $view_cityname){ //город
$draw->setFont(BASEPATH."/font/".$font_city);
$draw->setTextAlignment(Imagick::ALIGN_LEFT);
$draw->setFontSize($city_font_size);
$draw->setFillColor("rgb(".$city_font_color.")");
$bg->annotateImage($draw, $city_text_pixel_x, $city_text_pixel_y, 0, $cityname);
тогда:
$view_cityname = false; //отключается
|
|
20.12.2020, 18:58
|
Аспирант
|
|
Регистрация: 07.12.2020
Сообщений: 72
|
|
не могли бы вы подсказать почему получая содержимое из текстового файла не получается вывести как примерами выше, то есть соединить с графикой?
$handle = fopen("statistika/online.txt", "r");
while (!feof($handle)) {
$buffer = fgets($handle, 50);
echo $buffer;
}
fclose($handle);
->
if($vs){ //статистика
$draw->setFont(BASEPATH."/font/".$font_server);
$draw->setTextAlignment(Imagick::ALIGN_LEFT);
$draw->setFontSize($server_font_size);
$draw->setFillColor("rgb(".$server_font_color.")");
$bg->annotateImage($draw, $server_text_pixel_x, $server_text_pixel_y, 0, $buffer);
}
|
|
|
|