Php как соединить две строки
Перейти к содержимому

Php как соединить две строки

  • автор:

How can I combine two strings together in PHP?

I don’t actually know how to describe what I wanted, but I’ll show you:

What should I do (or process) so $result is the combination of $data1 and $data2 ?

Peter Mortensen's user avatar

19 Answers 19

This is called string concatenation. Your example lacks a space though, so for that specifically, you would need:

There are several ways to concatenate two strings together.

Use the concatenation operator . (and .= )

In PHP . is the concatenation operator which returns the concatenation of its right and left arguments

If you want to append a string to another string you would use the .= operator:

Complex (curly) syntax / double quotes strings

In PHP variables contained in double quoted strings are interpolated (i.e. their values are "swapped out" for the variable). This means you can place the variables in place of the strings and just put a space in between them. The curly braces make it clear where the variables are.

Note: this will also work without the braces in your case:

You can also concatenate array values inside a string :

Use sprintf() or printf()

sprintf() allows us to format strings using powerful formatting options. It is overkill for such simple concatenation but it handy when you have a complex string and/or want to do some formatting of the data as well.

printf() does the same thing but will immediately display the output.

Heredoc

Heredocs can also be used to combine variables into a string.

Use a , with echo()

This only works when echoing out content and not assigning to a variable. But you can use a comma to separate a list of expressions for PHP to echo out and use a string with one blank space as one of those expressions:

Как работают строки в PHP

Работа со строками в PHP

Строка – это последовательность из одного или нескольких символов, среди которых могут быть буквы, цифры или другие символы. Строки являются основой любого языка программирования. Вся коммуникация, которая происходит в письменном виде, состоит из строк.

В этой статье вы узнаете, как создавать строки, как выводить их на экран, использовать escape-последовательности, объединять строки и хранить строки в переменных. Также мы рассмотрим правила использования кавычек, апострофов и символов новой строки в PHP.

Одинарные и двойные кавычки в строках PHP

Чтобы создать строку в PHP, нужно заключить последовательность символов в одинарные или двойные кавычки. В зависимости от кавычек PHP интерпретирует строки по-разному, то есть для PHP эти две сроки – не одно и то же:

‘This is a string in single quotes.’
«This is a string in double quotes.»

Перед выводом строки в двойных кавычках PHP оценивает любые переменные или escape-последовательности внутри нее. Строки в одинарных кавычках выводятся в точности так же, как они были записаны. Чтобы использовать апостроф внутри строк в одинарных кавычках, перед ним нужно поставить обратный слеш.

К примеру, если нам нужно вывести на экран с помощью команды echo эту строку PHP:

‘8host says: «This string\’s in single quotes.» It required a backslash (\) before the apostrophes (\\\’), but do not use (\») with the double quotes.’

Команда вернет этот вывод:

8host says: «This string’s in single quotes.» It required a backslash (\) before the apostrophes (\’), but do not use (\») with the double quotes.

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

Обратный слеш – это escape-символ, который позволяет PHP читать некоторые символы буквально. Например, чтобы отобразить последовательность символов \’ в предыдущем примере, вы должны использовать три обратных слеша подряд (\\\’). Первые два символа \\ нужны для рендеринга одного обратного слеша, а \’ – для рендеринга апострофа.

«8host says: \»This string’s in double quotes.\» It requires a backslash (\) before the double quotes (\\\»), but you MUST NOT add a backslash before the apostrophe (\’).»

Будет отображаться так:

8host says: «This string’s in double quotes.» It requires a backslash (\) before the double quotes (\»), but you MUST NOT add a backslash before the apostrophe (\’).

Опять же, если ваша строка помещена в двойные кавычки, но в ней нужно использовать еще одни двойные кавычки, то перед ними обязательно нужно поставить обратный слеш. Если этого не сделать, PHP завершит строку в этой точке, что вызовет ошибку. Соответственно, перед апострофом в такой строке не нужно ставить escape-символ.

Аналогично, чтобы вывести последовательность символов \”, нужно использовать три обратных слеша, два из них – это escape-символы для \ и для ‘.

Сочетание escape-символа \ со второстепенным символом называется escape-последовательностью, или управляющей последовательностью. Теперь, когда вы знаете, что такое строки и как их создавать, давайте подробнее рассмотрим escape-последовательности.

Управляющие последовательности

Управляющая последовательность говорит программе, что она должна остановить стандартную рабочую процедуру и по-другому оценить символы, идущие после escape-символа.

В PHP escape-последовательность начинается с обратного слеша, \. В основном escape-последовательности применяются к строкам, заключенным в двойные кавычки. Внутри строк в одинарных кавычках escape-последовательности нужны только для того, чтобы вставить апостроф или обратный слеш.

Вот несколько распространенных escape-последовательностей для строк, заключенных в двойные кавычки:

  • \” – двойные кавычки
  • \\ – обратный слеш
  • \$ – отобразит знак доллара вместо расширения переменной
  • \n – новая строка
  • \t – горизонтальная табуляция

Как можно использовать эти последовательности в строке, показано в следующем примере:

«\»What type of \$ do Blogs use?\»\n\tSand dollars!»
«What type of $ do Blogs use?»
Sand dollars!

Управляющие последовательности дают нам возможность записать любую строку.

Вывод строк

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

$my_name = «8host»;
echo ‘Name is specified using the variable $my_name.’;
echo «\n»; // escape-последовательность для символа новой строки
echo «Hello, my name is $my_name. It’s stored in the variable \$my_name.»;

В первой строке создается переменная $my_name. Во второй строке используется функция echo – она выводит строку в одинарных кавычках. Строка в переменной $my_name заключена в одинарные кавычки, потому отображает символы в точности так, как они написаны – мы увидим имя переменной вместо ее значения.

В четвертой строке мы снова используем функцию echo, но на этот раз берем строку в двойные кавычки. В первом предложении переменная раскрывается, и мы видим ее значение. В следующем предложении перед символом $ стоит знак \, потому программа будет отображать символ $ буквально и не раскроет переменную.

Name is specified using the variable $my_name.
Hello, my name is 8host. It’s stored in the variable $my_name.

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

Конкатенация строк

Конкатенация – это объединение нескольких строк в одну новую строку. В PHP есть два способа объединения строки.

Первый способ – включить в строку строковую переменную, заключенную в двойные кавычки. Это мы видели в предыдущем разделе. Вот еще один пример:

$answer = «Chews wisely.»;
echo «What do Blogs do when they have a big choice to make? $answer»;

Этот код объединит строку и переменную $answer, значение которой – строка «Chews wisely.»:

What do Blogs do when they have a big choice to make? Chews wisely.

Второй способ конкатенации строк – использовать специальный оператор, который обозначается точкой.

Давайте объединим строки “8host” и “Blog” в одну строку с помощью оператора конкатенации и echo:

echo «8host» . «Blog»;

Этот код использует оператор «.» для объединения строк «8host» и «Blog» без пробела между ними.

Если вам нужен пробел между двумя строками, просто добавьте пробел в одну из строк, например, после слова 8host:

echo «8host » . «Blog»;

Использовать конкатенацию для объединения строки с целым числом нельзя. Например:

Это приведет к ошибке:

Parse error: syntax error, unexpected ‘.27’ (T_DNUMBER), expecting ‘;’ or ‘,’ in php shell code on line 1

Если же вы поместите 27 в кавычки (вот так “27”), то эти данные будут оцениваться как строка.

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

$my_int = 27;
echo «8host» . $my_int;
Вы получите:
8host27

Итак, мы рассмотрели два основных способа конкатенации, или объединения строк. Теперь давайте посмотрим, как PHP позволяет перезаписывать или обновлять строки.

Обновление строк

Обычные переменные в PHP изменяемы, что означает, что их можно обновлять. Давайте посмотрим, что происходит, когда мы меняем значение переменной $my_name:

$my_name = «8host»;
echo $my_name . «\n»;
$my_name = «Blog»;
echo $my_name;

Вывод будет выглядеть так:

Сначала переменной присвоили значение “8host” и отобразили ее с помощью echo. Затем мы присвоили ей другое значение, “Blog”, и при повторном вызове echo отображает новое значение.

Вместо перезаписи переменной вы можете использовать оператор конкатенации и присваивания (.=), чтобы добавить новые данные в конец строки:

$my_name = «8host»;
$my_name .= » Blog»;
echo $my_name;

Сначала мы установили переменной $my_name строку “8host”, а затем с помощью операторов .= добавили ” Blog” в конец этой строки. Новое значение $my_name – 8host Blog.

Чтобы добавить новые данные в начало строки, нужно перезаписать исходную строку:

$my_name = «Blog»;
$my_name = «8host » . $my_name;
echo $my_name;

На этот раз мы сначала присвоили переменной $my_name значение “Blog”, а затем использовали оператор = для переопределения переменной $my_name новой строкой “8host “, объединенной с предыдущим значением переменной $my_name. Итоговое значение переменной $my_name – 8host Blog.

Перезапись дает нам возможность вносить изменения в существующие строки.

Пробелы в строках

Поскольку PHP не чувствителен к пробелам, вы можете поместить в кавычки столько пробелов или разрывов строк, сколько захотите.

echo «8host
The (silly)
Blog»;
Вы получите:
8host
The (silly)
Blog

Имейте в виду, что HTML отображает пробелы иначе. Для перехода в новую строку в HTML нужен тег, поэтому, даже если в исходнике есть символы разрыва строк, вы не увидите эти новые строки на веб-странице. Независимо от того, сколько пробелов в вашем коде PHP, в HTML между символами отображается только один пробел.

Предыдущий пример в HTML будет выглядеть так:

8host The (silly) Blog

Понятное и последовательное использование пробелов – один из лучших приемов для повышения читабельности кода. PHP по существу игнорирует пробелы, благодаря чему у него появляется гибкость, которую вы можете использовать в своих интересах. Интегрированная среда разработки поможет вам поддерживать последовательный код.

Заключение

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

Работа со строками в PHP

Не пропусти свежие посты, подпишись:

Строка (тип string) — это набор символов, где символ — это то же самое, что и байт. Это значит, что PHP поддерживает ровно 256 различных символов, а также то, что в PHP нет встроенной поддержки Unicode.

Простейший способ определить строку — это заключить её в одинарные кавычки (символ ‘ ). Чтобы использовать одинарную кавычку внутри строки, проэкранируйте её обратным слешем ( \ ). Если необходимо написать сам обратный слеш, продублируйте его ( \\ ). Все остальные случаи применения обратного слеша будут интерпретированы как обычные символы: это означает, что если вы попытаетесь использовать другие управляющие последовательности, такие как \r или \n , они будут выведены как есть вместо какого-либо особого поведения.

Давайте рассмотрим частые примеры работы со строками в PHP.

Строковые операторы

Конкатенация строк

Данные оператор позволяет объединить две и более строк в одну.

Присваивание с конкатенацией

Этот оператор позволяет «приклеить» строки более короткой записью. Изменим вышеуказанный пример:
Результат тот же самый:
Данный пример может не очень хорошо отражает удобство этого метода. Но представьте что у вас есть массив строковых значений и вам нужно проверить его элементы и при определённых условиях собрать из них строку.

Результат:
Таким образом частом складывают SEO заголовок страницы фильтра в каталоге. Если посетитель отфильтровал каталог по ряду свойств, можно создать заголовок из заголовка раздела, названия и значения свойств.

Подсчёт символов в строке

Получить длину строки

Для этого используется функция strlen() принимающая саму строку, возвращает целое число, количество всех символов в строке. Если в строке есть кирилические символы в кодировке UTF-8, функция вернёт не правильный результат. Чтобы получить верную длину строки для кириллицы, используйте функцию mb_strlen() .

Результат:
Вообще для работы со строками в UTF-8 есть целый набор функций с префиксом mb .

Количество символов без пробелов

Количество слов в строке

Количество переносов в строке

Количество букв в строке

Количество цифр в строке

Аналогично предыдущему примеру, только теперь регулярное выражение заменит всё, что не является цифрой, на пустую строку.

Количество знаков препинания

Количество пробелов в строке

Поиск по строке

Получить количество определённых слов в строке

Позиция первого вхождения подстроки в строку

Позиция последнего вхождения подстроки в строку

Найти все вхождения подстроки

Замена в строках

Замена символов и слов в строке

Замена пробелов в строке

Замена до определённого символа

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

Не пропусти свежие посты, подпишись:

PHP: Строки

Значениями типа string являются текстовые строки (кратко строки). Строка — это последовательность из нуля или более символов. Символы включают в себя буквы, цифры, знаки пунктуации, специальные символы и пробелы.

Строка может быть определена четырьмя различными способами:

  • двойными кавычками
  • одинарными кавычками
  • heredoc-синтаксисом
  • nowdoc-синтаксисом

Строка в двойных кавычках

Строка в двойных кавычках:

В строках с двойными кавычками можно использовать управляющие последовательности. Управляющая последовательность — это специальные символы предназначенные для форматирования текстового вывода. В PHP доступны следующие управляющие последовательности:

Последовательность Значение
\n Перевод на новую строку (шестнадцатеричный код 0A).
\t Горизонтальная табуляция (шестнадцатеричный код 09).
\\ Обратная косая черта (обратный слэш).
\$ Знак доллара.
Двойная кавычка.
\xXX Символ, заданный одной или двумя шестнадцатеричными цифрами.

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

Строки, заключённые в двойные кавычки, могут содержать символы одинарных кавычек:

Строка в одинарных кавычках (апострофах)

Строка в одинарных кавычках:

В отличие от строк в двойных кавычках и heredoc-синтаксиса, переменные и управляющие последовательности (за одним исключением), заключённые в одинарные кавычки, не обрабатываются. Это означает, что они будут интерпретированы как обычные символы строки:

Чтобы в строке, заключённой в одинарные кавычки, можно было использовать одинарные кавычки, нужно их экранировать с помощью обратного слэша ( \’ ). Если необходимо написать саму обратную косую черту, нужно продублировать её ( \\ ):

Строки, заключённые в одинарные кавычки, могут содержать символы двойных кавычек:

Heredoc-синтаксис

Heredoc-синтаксис — это альтернативный способ записи строк.

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

Heredoc-синтаксис начинается с трёх символов <<< , после которых должен быть указан произвольный идентификатор (назовём его открывающим). Идентификатор может быть указан как в двойных кавычках, так и без них. Сразу после идентификатора должен следовать перевод на новую строку, никаких других символов кроме перевода на новую строку после идентификатора не должно быть, иначе возникнет ошибка. Далее идёт непосредственно строковое содержимое. После строкового содержимого, на отдельной строке, должен быть указан закрывающий идентификатор (тот же, что и после <<< ). Перед ним и после него не должно быть никаких пробелов или других символов, за исключением точки с запятой. Если это правило нарушено, то считается, что закрывающий идентификатор отсутствует и будет вызвана ошибка:

Nowdoc-синтаксис

Nowdoc-синтаксис также как и Heredoc является альтернативным способом записи строк.

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

Синтаксис Nowdoc похож на Heredoc с той лишь разницей, что открывающий идентификатор обязательно должен быть заключён в одинарные кавычки:

Обработка переменных в строках

Существует два типа синтаксиса обработки переменных в строках: простой и сложный.

Простой синтаксис — это когда имя переменной указывается в строке как есть.

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

Сложный синтаксис — это когда имя переменной заключается в фигурные скобки.

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

В данном случае не будет достигнут желаемый результат, поскольку интерпретатор будет считать $sport1 как часть имени переменной $sport1бол , которой не существует.

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

Знак доллара может быть расположен как перед фигурной скобкой, так и после неё:

Конкатенация

Конкатенация — это объединение двух или более строк в одну большую. Объединение происходит с помощью оператора конкатенации — . (точка). При конкатенации каждая последующая строка добавляется в конец предыдущей:

Значение любого типа, которое объединяется со строкой, будет неявно преобразовано в строку и далее будет произведена конкатенация:

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

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