1. Главная страница » Компьютеры » Php добавить символ в строку

Php добавить символ в строку

Автор: | 16.12.2019

Функция chop( ) возвращает строку после удаления из нее завершающих пропусков и символов новой строки. Синтаксис функции chop( ):

string chop(string строка)

В следующем примере функция chop( ) удаляет лишние символы новой строки:

str_pad()

Функция str_pad( ) выравнивает строку до определенной длины заданными символами и возвращает отформатированную строку. Синтаксис функции str_pad( ):

string str_pad (string строка, int длина_дополнения [, string дополнение [, int тип_дополнения]])

Если необязательный параметр дополнение не указан, строка дополняется пробелами. В противном случае строка дополняется заданными символами. По умолчанию строка дополняется справа; тем не менее, вы можете передать в параметре тип_дополнения константу STR_PAD_RIGHT, STR_PAD_LEFT или STR_PAD_BOTH, что приведет к дополнению строки в заданном направлении. Пример демонстрирует дополнение строки функцией str_pad( ) с параметрами по умолчанию: В следующем примере используются необязательные параметры функции str_pad( ):

Функция trim( ) удаляет псе пропуски с обоих краев строки и возвращает полученную строку. Синтаксис функции trim( ):

string trim (string страна]

К числу удаляемых пропусков относятся и специальные символы
,
, , v и .

ltrim()

Функция lrim( ) удаляет все пропуски и специальные символы с левого края строки и возвращает полученную строку. Синтаксис функции ltrim( ):

string ltrim (string строка)

Функция удаляет те же специальные символы, что и функция trim( ).

strlen()

Длину строки в символах можно определить при помощи функции strlen( ). Синтаксис .функции strlen( ):

int strlen (string строка)

Следующий пример демонстрирует определение длины строки функцией strlen( ):

Сравнение двух строк

Сравнение двух строк принадлежит к числу важнейших строковых операций любого языка. Хотя эту задачу можно решить несколькими разными способами, в РНР существуют четыре функции сравнения строк:

  • strcmp()
  • strcasecmp()
  • strspn()
  • strcspn()

strcmp()

Функция strcmp( ) сравнивает две строки с учетом регистра символов. Синтаксис функции strcmp( ): int strcmp (string строка1, string строка2)

После завершения сравнения strcmp( ) возвращает одно из трех возможных значений:

  • 0, если строка1 и строка2 совпадают;
  • 0, если строка2 меньше, чем строка1.

В следующем фрагменте сравниваются две одинаковые строки:

strcasecmp()

Функция strcasecmp( ) работает точно так же, как strcmp( ), за одним исключением — регистр символов при сравнении не учитывается. Синтаксис функции strcasecmp( ):

int strcasecmp (string cтpoкa1, string строка2)

В следующем фрагменте сравниваются две одинаковые строки:

strspn()

Функция strspn( ) возвращает длину первого сегмента строки1, содержащего символы, присутствующие в строке2. Синтаксис функции strspn( ):

int strspn (string строка1, string строка2)

Следующий фрагмент показывает, как функция strspn( ) используется для проверки пароля:

strcspn()

Функция strcspn( ) возвращает длину первого сегмента строки1, содержащего символы, отсутствующие в строке2. Синтаксис функции strcspn( ):

int strcspn (string строка1, string строка2)

В следующем фрагменте функция strcspn( ) используется для проверки пароля:

Обработка строковых данных без применения регулярных выражений

При обработке больших объемов информации функции регулярных выражений сильно замедляют выполнение программы. Эти функции следует применять лишь при обработке относительно сложных строк, в которых регулярные выражения действительно необходимы. Если же анализ текста выполняется по относительно простым правилам, можно воспользоваться стандартными функциями РНР, которые заметно ускоряют обработку. Все эти функции описаны ниже.

strtok()

Функция strtok( ) разбивает строку на лексемы по разделителям, заданным вторым параметром. Синтаксис функции strtok( ):

string strtok (string строка, string разделители)

У функции strtok( ) есть одна странность: чтобы полностью разделить строку, функцию необходимо последовательно вызвать несколько раз. При очередном вызове функция выделяет из строки следующую лексему. При этом параметр строка задается всего один раз — функция отслеживает текущую позицию в строке до тех пор, пока строка не будет полностью разобрана на лексемы или не будет задан новый параметр строка. Следующий пример демонстрирует разбиение строки по нескольким разделителям: Результат: Element = WJGilmore Element = wjgilmore@hotmail.com Element = Columbus Element = Ohio

parse_str()

Функция parse_str( ) выделяет в строке пары и присваивает значения переменных в текущей области видимости. Синтаксис функции parse_str( ):

void parse_str (string строка)

Функция parse_str( ) особенно удобна при обработке URL, содержащих данные форм HTML или другую расширенную информацию. В следующем примере анализируется информация, переданная через URL. Строка представляет собой стандартный способ передачи данных между страницами либо откомпилированных в гиперссылке, либо введенных в форму HTML:

Поскольку эта функция создавалась для работы с URL, она игнорирует символ амперсанд (&).

explode()

Функция explode() делит строку на элементы и возвращает эти элементы в виде массива. Синтаксис функции explode():

array explode (string разделитель, string строка [, int порог])

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

Разделение строки функцией explode( ) продемонстрировано в следующем примере:

Функция explode( ) практически идентична функции регулярных выражений POSIX split( ), описанной выше. Главное различие заключается в том, что передача регулярных выражений в параметрах допускается только при вызове split( ).

implode()

Если функция explode( ) разделяет строку на элементы массива, то ее двойник — функция implode( ) — объединяет массив в строку. Синтаксис функции implode( ):

string implode (string разделитель, array фрагменты)

Формирование строки из массива продемонстрировано в следующем примере:

У implode( ) имеется псевдоним — функция join( ).

strpos()

Функция strpos( ) находит в строке первый экземпляр заданной подстроки. Синтаксис функции strpos():

int strpos (string строка, string подстрока [, int смещение])

Необязательный параметр offset задает позицию, с которой должен начинаться поиск. Если подстрока не найдена, strpos() возвращает FALSE (0).

В следующем примере определяется позиция первого вхождения даты в файл журнала:

Читайте также:  Huawei honor band 3 или xiaomi

strrpos()

Функция strrpos( ) находит в строке последний экземпляр заданного символа. Синтаксис функции strrpos( ):

int strpos (string строка, char символ)

По возможностям эта функция уступает своему двойнику — функции strpos( ), поскольку она позволяет искать только отдельный символ, а не всю строку. Если во втором параметре strrpos( ) передается строка, при поиске будет использован только ее первый символ.

str_replace()

Функция str_replace( ) ищет в строке все вхождения заданной подстроки и заменяет их новой подстрокой. Синтаксис функции str_replace( ):

string str_replace (string подстрока, string замена, string строка)

Функция substr_replace( ), описанная ниже в этом разделе, позволяет провести заме ну лишь в определенной части строки. Ниже показано, как функция str_replace( ) используется для проведения глобальной замены в строке.

Если подстрока ни разу не встречается в строке, исходная строка не изменяется:

strstr()

Функция strstr( ) возвращает часть строки, начинающуюся с первого вхождения заданной подстроки. Синтаксис функции strstr( ):

string strstr (string строка, string подстрока)

В следующем примере функция strstr( ) используется для выделения имени домена из URL:

substr()

Функция substr( ) возвращает часть строки, начинающуюся с заданной начальной позиции и имеющую заданную длину. Синтаксис функции substr( ):

string substr (string строка, int начало [, int длина])

Если необязательный параметр длина не указан, считается, что подстрока начинается с заданной начальной позиции и продолжается до конца строки. При использовании этой функции необходимо учитывать четыре обстоятельства:

  • если параметр начало положителен, возвращаемая подстрока начинается с позиции строки с заданным номером;
  • если параметр начало отрицателен, возвращаемая подстрока начинается с позиции (длина строки — начало);
  • если параметр длина положителен, в возвращаемую подстроку включаются все символы от позиции начало до позиции начало+длина. Если последняя величина превышает длину строки, возвращаются символы до конца строки;
  • если параметр длина отрицателен, возвращаемая подстрока заканчивается на заданном расстоянии от конца строки.

Помните о том, что параметр начало определяет смещение от первого символа строки; таким образом, возвращаемая строка в действительности начинается с символа с номером (начало + 1).

Следующий пример демонстрирует выделение части строки функцией substr( ):

Пример с положительным параметром длина: Пример с отрицательным параметром длина:

substr_count()

substr_replace()

Функция substr_replace( ) заменяет часть строки, которая начинается с заданной позиции. Если задан необязательный параметр длина, заменяется фрагмент заданной длины; в противном случае производится замена по всей длине заменяющей строки. Синтаксис функции substr_replace( ):

string substr_replace (string строка, string замена, int начало [, int длина])

Параметры начало и длина задаются по определенным правилам:

  • если параметр начало положителен, замена начинается с заданной позиции;
  • если параметр начало отрицателен, замена начинается с позиции (длина строки -начало);
  • если параметр длина положителен, заменяется фрагмент заданной длины;
  • если параметр длина отрицателен, замена завершается в позиции (длина строки -длина).

Простая замена текста функцией substr_replace( ) продемонстрирована в следующем примере:

Alessia’s favorite links

Преобразование строк и файлов к формату HTML и наоборот

Преобразовать строку или целый файл к формату, подходящему для просмотра в web-браузере (или наоборот), проще, чем может показаться на первый взгляд. В РНР для этого существуют специальные функции.

Преобразование текста в HTML

Быстрое преобразование простого текста к формату web-браузера — весьма распространенная задача. В ее решении вам помогут функции, описанные в этом разделе.

nl2br()

Функция nl2br() заменяет все символы новой строки (
) эквивалентными конструкциями HTML.

Синтаксис функции nl2br():

string nl2br (string строка)

Символы новой строки могут быть как видимыми (то есть явно включенными в строку), так и невидимыми (например, введенными в редакторе). В следующем примере текстовая строка преобразуется в формат HTML посредством замены символов
разрывами строк: При последующем выводе $html_recipe браузеру будет передан следующий текст в формате HTML:

htmlentities()

Функция htmlentities( ) преобразует символы в эквивалентные конструкции HTML. Синтаксис функции htmlentities:

string htmlentities (string строка)

В следующем примере производится необходимая замена символов строки для вывода в браузере:

Функция htmlentities( ) в настоящее время работает только для символов кодировки ISO-8559-1 (ISO-Latin-1). Кроме того, она не преобразует пробелы в , как следовало бы ожидать.

htmlspecialchars()

Функция htmlspecialchars( ) заменяет некоторые символы, имеющие особый смысл в контексте HTML, эквивалентными конструкциями HTML. Синтаксис функции htmlspecialchars( ):

string htmlspecialchars (string строка)

Функция html special chars( ) в настоящее время преобразует следующие символы: & преобразуется в &; " " преобразуется в "; преобразуется в >.

В частности, эта функция позволяет предотвратить ввод пользователями разметки HTML в интерактивных web-приложениях (например, в электронных форумах). Ошибки, допущенные в разметке HTML, могут привести к тому, что вся страница будет формироваться неправильно. Впрочем, у этой задачи существует и более эффективное решение — полностью удалить теги из строки функцией strip_tags( ).

Следующий пример демонстрирует удаление потенциально опасных символов функцией htmlspeclalchars( ):

Если функция htmlspecialchars( ) используется в сочетании с nl2br( ), то последнюю следует вызывать после htmlspecialchars( ). В противном случае конструкции
, сгенерированные при вызове nl2br( ), преобразуются в видимые символы.

get_html_translation_table()

Функция get_html_translation_table( ) обеспечивает удобные средства преобразования текста в эквиваленты HTML Синтаксис функции get_htrril_translation_table( ):

string get_html_translation_table (int таблица)

Функция get_html_translation_table( ) возвращает одну из двух таблиц преобразования (определяется параметром таблица), используемых в работе стандартных функций htmlspecialchars( ) и htmlentities( ). Возвращаемое значение может использоваться в сочетании с другой стандартной функцией, strtr(), для преобразования текста в код HTML.

Параметр таблица принимает одно из двух значений:

  • HTML_ENTITIES;
  • HTML_SPECIALCHARS.

В следующем примере функция get_html_translation_table( ) используется при преобразовании текста в код HTML:

Кстати, функция array_flip( ) позволяет провести преобразование текста в HTML в обратном направлении и восстановить исходный текст. Предположим, что вместо вывода результата strtr( ) в предыдущем примере мы присвоили его переменной $translated string.

В следующем примере исходный текст восстанавливается функцией array_flip( ):

strtr()

Функция strtr( ) транслирует строку, то есть заменяет в ней все символы, входящие в строку источник, соответствующими символами строки приемник. Синтаксис функции strtr( ):

string strtr (string строка, string источник, string приемник)

Если строки источник и приемник имеют разную длину, длинная строка усекается до размеров короткой строки.

Существует альтернативный синтаксис вызова strtr( ) с двумя параметрами; в этом случае второй параметр содержит ассоциативный массив, ключи которого соответствуют заменяемым подстрокам, а значения — заменяющим подстрокам. В следующем примере теги HTML заменяются XML-подобными конструкциями:

Преобразование HTML в простой текст

Иногда возникает необходимость преобразовать файл в формате HTML в простой текст. Функции, описанные ниже, помогут вам в решении этой задачи.

Читайте также:  Html разметка страницы сайта

strip_tags()

Функция strip_tags( ) удаляет из строки все теги HTML и РНР, оставляя в ней только текст. Синтаксис функции strip_tags( ):

string strip_tags (string строка [, string разрешенные_тerи])

Необязательный параметр разрешенные_теги позволяет указать теги, которые должны пропускаться в процессе удаления.

Ниже приведен пример удаления из строки всех тегов HTML функцией strip_tags( ):

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

Удаление тегов из текста также производится функцией fgetss().

get_meta_tags()

Хотя функция get_meta_tags( ) и не имеет прямого отношения к преобразованию текста, зто весьма полезная функция, о которой следует упомянуть. Синтаксис функции get_meta_tags( ):

array get_meta_tags (string имя_файла/URL [, int включение_пути])

Функция get_meta_tags( ) предназначена для поиска в файле HTML тегов МЕТА.

Теги МЕТА содержат информацию о странице, используемую главным образом поисковыми системами. Эти теги находятся внутри пары тегов . . Применение тегов МЕТА продемонстрировано в следующем фрагменте (назовем его example.html, поскольку он будет использоваться в листинге 8.2): [/html] PHP Recipes [/html] Функция get_meta_tags( ) ищет в заголовке документа теги, начинающиеся словом МЕТА, и сохраняет имена тегов и их содержимое в ассоциативном массиве. В листинге 8.2 продемонстрировано применение этой функции к файлу example.html. Листинг 8.2. Извлечение тегов МЕТА из файла HTML функцией get_meta_tags( )

Интересная подробность: данные тегов МЕТА можно извлекать не только из файлов, находящихся на сервере, но и из других URL.

Преобразование строки к верхнему и нижнему регистру

strtolower( )

Функция strtolower( ) преобразует все алфавитные символы строки к нижнему регистру. Синтаксис функции strtolower():

string strtolower(string строка)

Неалфавитные символы функцией не изменяются. Преобразование строки к нижнему регистру функцией strtolower() продемонстрировано в следующем примере:

strtoupper()

Строки можно преобразовывать не только к нижнему, но и к верхнему регистру. Преобразование выполняется функцией strtoupper(), имеющей следующий синтаксис:

string strtoupper (string строка)

Неалфавитные символы функцией не изменяются. Преобразование строки к верхнему регистру функцией strtoupper() продемонстрировано в следующем примере:

ucfirst()

Функция ucfirst( ) преобразует к верхнему регистру первый символ строки — при условии, что он является алфавитным символом. Синтаксис функции ucfirst():

string ucfirst (string строка)

Неалфавитные символы функцией не изменяются. Преобразование первого символа строки функцией ucfirst() продемонстрировано в следующем примере:

ucwords()

Функция ucwords( ) преобразует к верхнему регистру первую букву каждого слова в строке. Синтаксис функции ucwords():

string ucwords (string строка")

Неалфавитные символы функцией не изменяются. "Слово" определяется как последовательность символов, отделенная от других элементов строки пробелами. В следующем примере продемонстрировано преобразование первых символов слов функцией ucwords( ):

strrchr()

strrchr("строка", "о") — Находит последнее вхождение подстроки

Если подстрока не найдена, возвращает FALSE.

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

Если второй параметр не является строкой, он приводится к целому и трактуется как код символа.

highlight_string()

mixed highlight_string (string str [, bool return])

Функция highlight_string() выводит версию с расцвеченным синтаксисом строки str, используя цвета, определённые во встроенном выделении синтаксиса PHP.

Если второй параметр return имеет значение TRUE, то highlight_string() возвратит версию раскрашенного кода как строку, вместо её печати. Если второй параметр не имеет значение TRUE, highlight_string() возвратит TRUE при успехе, FALSE при неудаче.

Примечание: 1.параметр return стал доступен, начиная с PHP 4.2.0. До этого он работал, как по умолчанию, т.е. FALSE.
2.Функция Highlight_String() различает PHP код по тегам . show_source() — синоним highlight_file(). Для изменения цвета выделения по умолчанию используйте следующие PHP директивы: в .htaccess: в PHP:

addslashes()

Возвращает сроку, в которой перед каждым спецсимволом добавлен обратный слэш (), например для последующего использования этой строки в запросе к базе данных.

Экранируются одиночная кавычка (‘), дойная кавычка ("), обратный слэш () и NUL (байт NULL).

Всем привет есть строка типа 53763badd6f05.

Нужно прогнать через php что бы была строка 53763-badd-6f05. Т.Е. С тире.

Как это делается?

1 ответ 1

ну или даже так (это к вопросу про условие):

Всё ещё ищете ответ? Посмотрите другие вопросы с метками php или задайте свой вопрос.

Связанные

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

str_pad — Дополняет строку другой строкой до заданной длины

Описание

Эта функция возвращает строку input , дополненную слева, справа или с обеих сторон до заданной длины. Если необязательный аргумент pad_string не передан, то input будет дополнен пробелами, иначе он будет дополнен символами из pad_string до нужной длины.

Список параметров

Если значение pad_length отрицательно, меньше или равно длине входной строки, то дополнения не происходит и возвращается исходная строка input .

pad_string может быть урезана, если необходимое количество дополняемых символов не делится нацело на длину строки pad_string .

Необязательный аргумент pad_type может иметь значение STR_PAD_RIGHT , STR_PAD_LEFT или STR_PAD_BOTH . Если не указан, то по умолчанию используется STR_PAD_RIGHT .

Возвращаемые значения

Возвращает дополненную строку.

Примеры

Пример #1 Пример использования str_pad()

User Contributed Notes 23 notes

since the default pad_type is STR_PAD_RIGHT. using STR_PAD_BOTH were always favor in the right pad if the required number of padding characters can’t be evenly divided.

echo str_pad ( "input" , 10 , "pp" , STR_PAD_BOTH ); // ppinputppp
echo str_pad ( "input" , 6 , "p" , STR_PAD_BOTH ); // inputp
echo str_pad ( "input" , 8 , "p" , STR_PAD_BOTH ); //pinputpp

A proper unicode string padder;

function str_pad_unicode ( $str , $pad_len , $pad_str = ‘ ‘ , $dir = STR_PAD_RIGHT ) <
$str_len = mb_strlen ( $str );
$pad_str_len = mb_strlen ( $pad_str );
if (! $str_len && ( $dir == STR_PAD_RIGHT || $dir == STR_PAD_LEFT )) <
$str_len = 1 ; // @debug
>
if (! $pad_len || ! $pad_str_len || $pad_len $str_len ) <
return $str ;
>

$result = null ;
$repeat = ceil ( $str_len — $pad_str_len + $pad_len );
if ( $dir == STR_PAD_RIGHT ) <
$result = $str . str_repeat ( $pad_str , $repeat );
$result = mb_substr ( $result , 0 , $pad_len );
> else if ( $dir == STR_PAD_LEFT ) <
$result = str_repeat ( $pad_str , $repeat ) . $str ;
$result = mb_substr ( $result , — $pad_len );
> else if ( $dir == STR_PAD_BOTH ) <
$length = ( $pad_len — $str_len ) / 2 ;
$repeat = ceil ( $length / $pad_str_len );
$result = mb_substr ( str_repeat ( $pad_str , $repeat ), 0 , floor ( $length ))
. $str
. mb_substr ( str_repeat ( $pad_str , $repeat ), 0 , ceil ( $length ));
>

Читайте также:  Fx аудио feixiang dac x6

return $result ;
>
?>

Test;
// needs ie. "test.php" file encoded in "utf-8 without bom"
$s = ‘. ‘ ;
for ( $i = 3 ; $i 1000 ; $i ++) <
$s1 = str_pad ( $s , $i , ‘AO’ , STR_PAD_BOTH ); // can not inculde unicode char.
$s2 = str_pad_unicode ( $s , $i , ‘ÄÖ’ , STR_PAD_BOTH );
$sl1 = strlen ( $s1 );
$sl2 = mb_strlen ( $s2 );
echo "len $sl1 : $s1
" ;
echo "len $sl2 : $s2
" ;
echo "
" ;
if ( $sl1 != $sl2 ) die( "Fail!" );
>
?>

Output;
len 3: .
len 3: .

len 4: . A
len 4: . Ä

len 5: A. A
len 5: Ä. Ä

len 6: A. AO
len 6: Ä. ÄÖ
.

function mb_str_pad ( $str , $pad_len , $pad_str = ‘ ‘ , $dir = STR_PAD_RIGHT , $encoding = NULL )
<
$encoding = $encoding === NULL ? mb_internal_encoding () : $encoding ;
$padBefore = $dir === STR_PAD_BOTH || $dir === STR_PAD_LEFT ;
$padAfter = $dir === STR_PAD_BOTH || $dir === STR_PAD_RIGHT ;
$pad_len -= mb_strlen ( $str , $encoding );
$targetLen = $padBefore && $padAfter ? $pad_len / 2 : $pad_len ;
$strToRepeatLen = mb_strlen ( $pad_str , $encoding );
$repeatTimes = ceil ( $targetLen / $strToRepeatLen );
$repeatedString = str_repeat ( $pad_str , max ( 0 , $repeatTimes )); // safe if used with valid utf-8 strings
$before = $padBefore ? mb_substr ( $repeatedString , 0 , floor ( $targetLen ), $encoding ) : » ;
$after = $padAfter ? mb_substr ( $repeatedString , 0 , ceil ( $targetLen ), $encoding ) : » ;
return $before . $str . $after ;
>
?>

For me this worked.
$string = ‘help’;

#First, str_pad() with unique character.
$string = str_pad($string, 10, "*", STR_PAD_BOTH);
#$string = ‘***help***’;

#Second, str_replace with ‘ ‘
$string = str_replace("*", " ", $string);

a different, more robust multibyte version of str_pad that works correctly only if $pad_string is non-multibyte string

function my_mb_str_pad($input, $pad_length, $pad_string=’ ‘, $pad_type=STR_PAD_RIGHT,$encoding=’UTF-8’) <
$mb_diff=mb_strlen($str, $encoding)-strlen($string);
return str_pad($input,$pad_length+$mb_diff,$pad_string,$pad_type);
>

Warning: If your string includes non-ascii characters (eg the British pounds sign), str_pad() will treat these as two characters when calculating the padding.

So for example:
( $currency_symbol . $showtottopay , 12 , " " , STR_PAD_LEFT );
?>
will produce a different length string depending on whether $currency_symbol is pounds or dollars.

Hope this helps someone — it caused me a lot of problems with misaligned columns in my invoices until I worked it out.

Fills the first argument (mostly a number, f.e. from a loop to display a date or time) with zeroes.

function zerofill ( $mStretch , $iLength = 2 )
<
$sPrintfString = ‘%0’ . (int) $iLength . ‘s’ ;
return sprintf ( $sPrintfString , $mStretch );
>
?>

sprintf() is indeed faster than str_pad.

Here is the mcinp’s version of mb_str_pad bugfixed:

function mb_str_pad ( $input , $pad_length , $pad_string = ‘ ‘ , $pad_type = STR_PAD_RIGHT , $encoding = ‘UTF-8’ ) <
$mb_diff = mb_strlen ( $input , $encoding )- strlen ( $input );
return str_pad ( $input , $pad_length — $mb_diff , $pad_string , $pad_type );
>
?>

Still working correctly only if $pad_string is non-multibyte string

In case you want to pad 2 strings together with a character you can use:

function pad_between_strings ( $string1 , $string2 , $length , $char = " " ) <
$fill_length = $length — ( strlen ( $string1 ) + strlen ( $string2 ) );
return $string1 . str_repeat ( $char , $fill_length ) . $string2 ;
>
?>

In a lot of cases you’re better off using str_repeat if you want to use something like — it repeats the entire string.

Using str_repeat, I wrote a full string pad function that should closely mimic str_pad in every other way:

function full_str_pad ( $input , $pad_length , $pad_string = » , $pad_type = 0 ) <
$str = » ;
$length = $pad_length — strlen ( $input );
if ( $length > 0 ) < // str_repeat doesn’t like negatives
if ( $pad_type == STR_PAD_RIGHT ) < // STR_PAD_RIGHT == 1
$str = $input . str_repeat ( $pad_string , $length );
> elseif ( $pad_type == STR_PAD_BOTH ) < // STR_PAD_BOTH == 2
$str = str_repeat ( $pad_string , floor ( $length / 2 ));
$str .= $input ;
$str .= str_repeat ( $pad_string , ceil ( $length / 2 ));
> else < // defaults to STR_PAD_LEFT == 0
$str = str_repeat ( $pad_string , $length ). $input ;
>
> else < // if $length is negative or zero we don’t need to do anything
$str = $input ;
>
return $str ;
>

$pad_me = "Test String" ;
echo ‘|’ . full_str_pad ( $pad_me , 20 , ‘ ‘ ). "|
" ;
echo ‘|’ . full_str_pad ( $pad_me , 20 , ‘ ‘ , STR_PAD_RIGHT ). "|
" ;
echo ‘|’ . full_str_pad ( $pad_me , 20 , ‘ ‘ , STR_PAD_BOTH ). "|
" ;
?>

This is how I pad using :

str_replace(" ", " ", str_pad($foo, 10, " ", STR_PAD_LEFT))

Seems to work well using two tags for each character added, at least for my use. YMMV.

Basically, *all* of you guys have a ‘long’ way of padding text with html tags (which includes ) You dont even have to do a str_replace. try the following code and this will work with ANY html tag there is out there and you don’t have to worry about tag character lengths so on and so forth:

Will produce:
This is pretty interesting! Dont you think?

/**
* str_pad_html — Pad a string to a certain length with another string.
* accepts HTML code in param: $strPadString.
*
* @name str_pad_html()
* @author Tim Johannessen
* @version 1.0.0
* @param string $strInput The array to iterate through, all non-numeric values will be skipped.
* @param int $intPadLength Padding length, must be greater than zero.
* @param string [$strPadString] String to pad $strInput with (default: )
* @param int [$intPadType] STR_PAD_LEFT, STR_PAD_RIGHT (default), STR_PAD_BOTH
* @return string Returns the padded string
**/
function str_pad_html ( $strInput = "" , $intPadLength , $strPadString = " " , $intPadType = STR_PAD_RIGHT ) <
if ( strlen ( trim ( strip_tags ( $strInput ))) intval ( $intPadLength )) <

switch ( $intPadType ) <
// STR_PAD_LEFT
case 0 :
$offsetLeft = intval ( $intPadLength — strlen ( trim ( strip_tags ( $strInput ))));
$offsetRight = 0 ;
break;

// STR_PAD_RIGHT
case 1 :
$offsetLeft = 0 ;
$offsetRight = intval ( $intPadLength — strlen ( trim ( strip_tags ( $strInput ))));
break;

// STR_PAD_BOTH
case 2 :
$offsetLeft = intval (( $intPadLength — strlen ( trim ( strip_tags ( $strInput )))) / 2 );
$offsetRight = round (( $intPadLength — strlen ( trim ( strip_tags ( $strInput )))) / 2 , 0 );
break;

// STR_PAD_RIGHT
default:
$offsetLeft = 0 ;
$offsetRight = intval ( $intPadLength — strlen ( trim ( strip_tags ( $strInput ))));
break;
>

$strPadded = str_repeat ( $strPadString , $offsetLeft ) . $strInput . str_repeat ( $strPadString , $offsetRight );
unset( $strInput , $offsetLeft , $offsetRight );

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *