kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 Wolfpack'08
Wolfpack'08
Вопрос

Что означает %S в PHP, HTML или XML?

Я смотрю на Webmonkey's PHP and MySql Tutorial, Lesson 2. Я думаю, что это php литерал. Что означает %s? Он находится внутри функции print_f() в циклах while, по крайней мере, в первой паре блоков кода.

printf("<tr><td>%s %s</td><td>%s</td></tr>n", ....

33 2012-07-24T02:21:20+00:00 5
Программирование
html
php
xml
string-literals
Решение / Ответ
 Tivie
Tivie
24-го июля 2012 в 2:29
2012-07-24T02:29:31+00:00
Дополнительно
Источник
Редактировать
#16766392

с символами printf или sprintf, предшествующими знаку%, являются заполнителями (или токенами). Они будут заменены переменной, переданной в качестве аргумента.

Пример:

$str1 = 'best';
$str2 = 'world';

$say = sprintf('Tivie is the %s in the %s!', $str1, $str2);
echo $say;

Это выведет:

Тиви - лучшая в мире!

Примечание. Заполняет больше (% s для строки,% d для номера dec и т. Д.)...)


Заказ:

Порядок, в котором вы передаете аргументы, имеет значение. Если вы переключаете $ str1 с $ str2 как

$say = sprintf('Tivie is the %s in the %s!', $str2, $str1); 

это будет печатать

«Тиви - это мир в лучшем виде!«

Вы можете, однако, изменить порядок чтения аргументов следующим образом:

$say = sprintf('Tivie is the %2$s in the %1$s!', $str2, $str1);

который напечатает предложение правильно.


Кроме того, имейте в виду, что PHP является динамическим языком и не требует (или поддерживает) явного определения типа. Это означает, что он жонглирует переменными типами по мере необходимости. В спринте это означает, что если вы передадите «строку» в качестве аргумента для заполнителя числа (% d), эта строка будет преобразована в число (int, float...) которые могут иметь странные результаты. Вот пример:

$onevar = 2;
$anothervar = 'pocket';
$say = sprintf('I have %d chocolate(s) in my %d.', $onevar, $anothervar);
echo $say;

это напечатает

У меня есть 2 шоколада в моем 0.

Больше чтения в PHPdocs

 Tivie
Tivie
Редактировал ответ 3-го февраля 2013 в 2:00
47
0
Ned Batchelder
Ned Batchelder
24-го июля 2012 в 2:22
2012-07-24T02:22:40+00:00
Дополнительно
Источник
Редактировать
#16766389

В printf, %s - это заполнитель для данных, которые будут вставлены в строку. Дополнительные аргументы printf - это значения, которые будут вставлены. Они ассоциируются с заполнителями позиционно: первый заполнитель получает первое значение, второй - второе, и так далее.

12
0
 rdo
rdo
24-го июля 2012 в 2:28
2012-07-24T02:28:19+00:00
Дополнительно
Источник
Редактировать
#16766391

%s - это спецификатор типа, который в случае %s будет заменен на значение valuable's (строка).

Кроме %s вы можете использовать и другие спецификаторы, наиболее популярные из них приведены ниже:

d - аргумент рассматривается как целое число и представляется в виде (знакового) десятичного числа.

f - аргумент рассматривается как float и представляется как число с плавающей точкой (с учетом локали). с учетом локали).

s - аргумент рассматривается как строка и представляется в виде строки.

6
0
 David
David
24-го июля 2012 в 2:24
2012-07-24T02:24:18+00:00
Дополнительно
Источник
Редактировать
#16766390
$num = 5; 
$location = 'tree';

$format = 'There are %d monkeys in the %s'; 
echo sprintf($format, $num, $location); 

Будет выведено: "На дереве сидят 5 обезьян."

Ned Batchelder
Ned Batchelder
Редактировал ответ 24-го июля 2012 в 2:27
2
0
Emeka Augustine
Emeka Augustine
20-го марта 2019 в 9:46
2019-03-20T21:46:54+00:00
Дополнительно
Источник
Редактировать
#16766393

Функция printf () или sprintf () записывает форматированную строку в переменную. Вот синтаксис:

sprintf(format,arg1,arg2,arg++)

формат:

  • %% - возвращает знак процента -% b - Бинарный номер -% c - символ в соответствии со значением ASCII -% d - Подписанное десятичное число (отрицательное, нулевое или положительное) -% e - Научная запись с использованием строчной буквы (например,. 1,2e + 2) -% E - Научная нотация с использованием заглавной буквы (например,. 1.2E + 2) -% u - Неподписанное десятичное число (равное или большее нуля) -% f - номер с плавающей запятой (признаются локальные настройки) -% F - номер с плавающей запятой (не указаны локальные настройки) -% g - короче% e и% f -% G - короче% E и% f -% o - Октальный номер -% s - String -% x - шестнадцатеричное число (строчные буквы) -% X - шестнадцатеричное число (заглавные буквы)

arg1 :

  • Аргумент, который будет вставлен при первом % -знаке в формате строка..(Требуется.)

arg2 :

  • Аргумент, который будет вставлен во второй % - знак в формате строка. (Необязательно)

arg ++ :

  • Аргумент для вставки в третий, четвертый и т. Д. % -знак в строка формата (необязательно)

Пример 1:

$number = 9;
$str = "New York";
$txt = sprintf("There are approximately %u million people in %s.",$number,$str);
echo $txt;

Это выведет:

В «Нью-Йорке» проживает около 9 миллионов человек.

Параметры arg1 , arg2 , arg ++ будут вставлены со знаками процента (%) в основной строке. Эта функция работает «пошагово». При первом знаке% вставляется arg1, на втором знаке% вставляется arg2 и т. Д.

Примечание : Если есть больше% признаков, чем аргументов, вы должны использовать заполнители. Заполнитель вставляется после знака% и состоит номера аргумента и "\ $". Давайте посмотрим другой пример:

Пример 2

$number = 123;
$txt = sprintf("With 2 decimals: %1\$.2f
<br>With no decimals: %1\$u",$number);
echo $txt;

Это выведет:

С 2 десятичными знаками: 123,00 Без десятичных знаков: 123

Еще один важный совет, который нужно помнить, это:

С функциями printf () и sprintf () escape-символ отсутствует обратная косая черта '\', а скорее '%'. Т.е. распечатать символ «%», который вам нужен убежать от этого сам:

printf ('%%% s%%', 'Nigeria Naira');

Это выведет:

% Нигерия Наира%

Не стесняйтесь исследовать официальную PHP Documentation

 marc_s
marc_s
Редактировал ответ 6-го апреля 2019 в 11:55
1
0
Похожие сообщества 31
HTML/CSS — русскоговорящее сообщество
HTML/CSS — русскоговорящее сообщество
6 455 пользователей
Возникли проблемы с HTML или CSS? – пиши сюда, обсудим и предложим самое лучшее решение. @javascript_ru @js_noobs_ru @frontend_ru Каналы: @defront @htmlshit 🟡 Ищешь чат? @it_chats 🟡 Мы всегда рады помочь, но у нас есть правила. ВАЖНО: http://nometa.xyz
Открыть telegram
phpGeeks
phpGeeks
4 759 пользователей
Best PHP chat @phpGeeksJunior - новичкам @golangGeeks - гошка @jobGeeks - вакансии(250000 р/мес) @dbGeeks - базы данных @ebanoePhp - канал о PHP @laravel_pro - Laravel @jsChat - JS @moscowProgers - Москва Реклама: https://vk.cc/cbJtVV ДР - 28.03.2016
Открыть telegram
PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
4 188 пользователей
Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii etc. Full/par-time, remote и т.д. ПРАВИЛА: https://t.me/php_jobs/45345 Флудильня: @phpimhorus More: @javascript_jobs, @nodejs_jobs, @devops_jobs, @sql_jobs
Открыть telegram
phpGeeksJunior
phpGeeksJunior
2 980 пользователей
Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Реклама: https://vk.cc/cbJtVV Правила и полезные ссылки https://github.com/phpgeeks-club/faq Бест от пхпгикс https://t.me/best_of_phpgeeks
Открыть telegram
Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
2 919 пользователей
Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Библиотека верстальщика: @weblibrary Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @bigmarketolog Автор: @M_Boroda
Открыть telegram
#php chat
#php chat
2 827 пользователей
Группа для новичков и бывалых. Не стесняйтесь задавать вопросы по php. Уважаем друг друга Администрация: @faramanx Сотрудничество: @adskiy_tony
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Ilya Smirnov
Зарегистрирован 5 дней назад
2
Денис Васьков
Зарегистрирован 1 неделю назад
3
Dima Patrushev
Зарегистрирован 1 неделю назад
4
sirojidddin otaboyev
Зарегистрирован 2 недели назад
5
Елена Гайдамамакинат
Зарегистрирован 2 недели назад
ID
JA
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией