да, он вечный, потому $text за каждую итерацию увеличивается на символ, продлевая цикл тут всё проще, разве что надо задаться условием переноса/разделения слов, символы будут распологаться по решетке (по клеткам) или по порядку в зависимости от длины символов. Т.е. рисовать по букве или вставлять сразу блок текста, попутно меряя его высоту. по сабжу посмотри функцию imagettfbbox
Ещё момент. А как определить ещё когда нужно напечатать слово, место, допустим, для 4 букв ещё есть на строке, а слово следующее из 6 букв. Как понять, что нужно перенести? В общем нужно тупо вставить текст на картинку с фиксированной шириной. Неужели нет готовой функции, по-моему это распространённая задача.
ах почему же в GD нет функции imagecaptcha(), которая отргенерирует готовую капчу задача то распространённая как бы
В общем имею код PHP: // подключение к чату $ch2 = curl_init('http://'.$hostname.'/srv/chat/chat_proc?lChannel=15&xml=1'); // берем куки из файла curl_setopt($ch2, CURLOPT_COOKIEFILE, "cookie.txt"); // выполняем запрос curl_exec ($ch2); //закрываем curl_close ($ch2); В итоге надо из страницы которая открывается после запроса вытащить нужные мне данные. Подскажите как это сделать? Знаю что функцией preg_match но как именно не знаю т.к. тока начала работать с cURL.
С праздником коллеги! Как организовать вывод массовых кодов на залитые изображения?? Спрашивал 5-ью днями ранее, поэтому приведу ссылки, более чем уверен, что реализуется это проще чем кажется, понять бы только как = ( https://forum.antichat.ru/showpost.php?p=2266619&postcount=16162 https://forum.antichat.ru/showpost.php?p=2266630&postcount=16163 https://forum.antichat.ru/showpost.php?p=2266849&postcount=16166 Спасибо вам большое, работает! Но только для массовых ссылок. Не считает $i теперь, точнее выводит ссылки для заполненных инпутов (картинок), а вот загружает так только одну: PHP: $alllink = array(); $alltlink = array(); $alldlink = array(); $fcount = count($_FILES['userfile']['tmp_name']) or $fcount = count($_POST['linkfile']); for ($i=0; $i<$fcount; $i++) { $image = $_FILES['userfile']['tmp_name'][$i] or $image = $_POST['linkfile'][$i]; $alllink[] = 'ilink'; $alltlink[] = 'tlink'; $alldlink[] = 'dlink'; } if ($fcount>1) { echo implode(" ", $alllink); echo implode("<br />\r\n", $alltlink); echo implode("<br />\r\n", $alldlink); } Ай забыл, надо еще $_POST['linkfile'] как то подсчитать. Там таже лабудень, выводит 10* ссылок, хотя загружаю только 3 фотки = ( * - в формочке 10 инпутов для загрузки по файлам, и 10 инпутов - по ссылке.
установите опцию CURLOPT_RETURNTRANSFER на 1 и делайте запрос вот так: PHP: $result = curl_exec($ch); и парсите $result
Axel G php это, к сожалению, не питон и такая строчка PHP: $fcount = count($_FILES['userfile']['tmp_name']) or $fcount = count($_POST['linkfile']); Не имеет права на существование, так как будет возвращать неожидаемый результат. По большому счету стоит проверять на пустоту все записи с помощью цикла http://php.net/foreach и http://php.net/empty. А если требуется искусственно ограничить количество пришедших записей, то сделать обычный цикл на N записей
Code: $fcount = count($_FILES['userfile']['tmp_name']) or $fcount = count($_POST['linkfile']); Любопытно, что такая конструкция работает как ожидается в php и не работает в питоне. Code: php -r '$a = 1 or $a = 2; print($a . "\n");' 1 php -r '$a = 0 or $a = 2; print($a . "\n");' 2 Code: python -c 'a = 1 or a = 2; print(a)' File "<string>", line 1 SyntaxError: can't assign to operator python -c '(a = 1) or (a = 2); print(a)' File "<string>", line 1 (a = 1) or (a = 2); print(a) ^ SyntaxError: invalid syntax
astrologer да, пожалуй, здесь не прав. Мной имелась ввиду конструкция: PHP: $a = 0; $b = 5; $c = $a or $b; echo $c."\n"; и Code: a = 0 b = 5 c = a or b print c В первом случае я ожидал бы 5, ну хотя бы 1 (или True), а получаю то что получаю
С php всё понятно - он унаследовал ещё от перла набор логических операторов - буквенные (and, or, xor) обладают более низким приоритетом, чем присваивание. В php это менее полезно. Такая строчка: Code: $c = $a || $b; присвоит $с истину. С питоном тоже всё понятно - "or" обладает большим приоритетом, чем присваивание. А вот что присваивание не является выражением меня удивляет. Dense is often more readable. // Gifts: еще бы возвращал этот ваш ПХП последнее значение, а не только результат логической операции. Присваивание не является выражением - это конечно спорный момент в питоне, но лучше уж так, чем позним вечером искать ошибку типа if ($a = 2), а если еще "Dense is often more readable." задействован, то можно вешаться. На этом закончим оффтоп, пожалуй Обсуждаем приоритеты операторов - самые что ни на есть вопросы новичков, никакого оффтопа - строго по теме. Если бы. Вообще-то как язык php во многом отстает. Тут в какой-то теме приводили аргумент в защиту php вроде "это логические операторы, поэтому должно быть логическое значение" Если компактная запись убирает ненужную тавтологию (которая иногда преподносится как более читаемый код), вешаться не придётся. Code: $isSecure = validate(); if ($isSecure) { $results = compute(); print $results; } Code: if (validate()) { print compute(); } Code: print compute() if validate();
Gifts, хмм, Нее, как раз требуется подсчитать кол-во заполненных инпутов, говоря простым языком. Форич до этого не юзал, обходился фором, бум пробовать. astrologer, а можно с этого момента поподробнее, насчет приоритетов. || !== or ?? И что лучше использовать буквенное или символьное, для 'и' использую && - привык уже, а вот этот символ ||, на клаве найти трудновато, хз есть ли он, а постоянное в пуск лазеть не айс, потому юзаю or.
Это то, что нужно. Только теперь другая как-бы проблема. Получился вот такой код: PHP: <?php $text = "I have a page with an image floating on the right, and text printed out beside the image (to the left). I used wordwrap to wrap the text so that it doesn't go over the image, but sometimes the text would go down beyond the image (vertically beyond the image, where the height of the text was more than the height of the image), resulting in wrapped text that doesn't need to be wrapped. So I came up with this method that takes a number max-lines to wordwrap, and then the rest either no wrapping, or wordwrapping at a different number of characters:"; $text=wordwrap($text, 100, "\r\n", true); $width = 500; $col=explode("\n", $text); $n=count($col)+1; $im=imagecreate($width, $n*13); $background_color = imagecolorallocate($im, 255, 255, 255); $text_color = imagecolorallocate($im, 233, 14, 91); imagettftext($im, 7, 0, 10, 15, $text_color, 'arial.ttf', $text); imagepng($im, 're.png'); ?> Всё отлично работает. Но есть маленькая проблема, как я понимаю, с wordwrap. С аглийскими буквами - 100 - это действительно 100 символов, а вот когда я загоняю русский текст - получаю переносы, через каждые 50 символов. Можно это как-нибудь поправить?
programming перевести текст в 8 битную кодировку (например windows-1251), разбить, и вернуть обратно UTF-8. http://php.net/iconv
Как можно удалить последнее поле из таблицы, если результат ложь if (...){ ... } else{ DELETE самое последнее поле из таблицы } думал может так DELETE MAX(id) FROM table но не катит( и то, я же говорю ему удалить макс ид а не всё поле
примени ту штуку max(id), сохрани в переменную, а потом сделай DELETE * from `table` WHERE id= $maxid