PHP: str_replace — Manual

(PHP 4, PHP 5, PHP 7)

str_replace — Заменяет все вхождения строки поиска на строку замены

Описание

Эта функция возвращает строку или массив, в котором все вхождения search в subject заменены на replace .

Если не нужны сложные правила поиска/замены (например, регулярные выражения), использование этой функции предпочтительнее preg_replace() .

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

Если search и replace — массивы, то str_replace() использует каждое значение из соответствующего массива для поиска и замены в subject . Если в массиве replace меньше элементов, чем в search , в качестве строки замены для оставшихся значений будет использована пустая строка. Если search — массив, а replace — строка, то эта строка замены будет использована для каждого элемента массива search . Обратный случай смысла не имеет.

Если search или replace являются массивами, их элементы будут обработаны от первого к последнему.

Искомое значение, также известное как needle (иголка). Для множества искомых значений можно использовать массив.

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

Строка или массив, в котором производится поиск и замена, также известный как haystack (стог сена).

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

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

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

Эта функция возвращает строку или массив с замененными значениями.

Примеры

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

// присваивает
$bodytag = str_replace ( «%body%» , «black» , » » );

// присваивает: Hll Wrld f PHP
$vowels = array( «a» , «e» , «i» , «o» , «u» , «A» , «E» , «I» , «O» , «U» );
$onlyconsonants = str_replace ( $vowels , «» , «Hello World of PHP» );

// присваивает: You should eat pizza, beer, and ice cream every day
$phrase = «You should eat fruits, vegetables, and fiber every day.» ;
$healthy = array( «fruits» , «vegetables» , «fiber» );
$yummy = array( «pizza» , «beer» , «ice cream» );

$newphrase = str_replace ( $healthy , $yummy , $phrase );

// присваивает: 2
$str = str_replace ( «ll» , «» , «good golly miss molly!» , $count );
echo $count ;
?>

Пример #2 Примеры потенциальных трюков с str_replace()

// Порядок замены
$str = «Строка 1nСтрока 2rСтрока 3rnСтрока 4n» ;
$order = array( «rn» , «n» , «r» );
$replace = ‘
‘ ;

// Обрабатывает сначала rn для избежания их повторной замены.
echo $newstr = str_replace ( $order , $replace , $str );

// Выводит F, т.к. A заменяется на B, затем B на C, и так далее.
// В итоге E будет заменено F, так как замена происходит слева направо.
$search = array( ‘A’ , ‘B’ , ‘C’ , ‘D’ , ‘E’ );
$replace = array( ‘B’ , ‘C’ , ‘D’ , ‘E’ , ‘F’ );
$subject = ‘A’ ;
echo str_replace ( $search , $replace , $subject );

// Выводит: яблорехкорех орех (по вышеуказанной причине)
$letters = array( ‘я’ , ‘о’ );
$fruit = array( ‘яблоко’ , ‘орех’ );
$text = ‘я о’ ;
$output = str_replace ( $letters , $fruit , $text );
echo $output ;
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Замечание о порядке замены

Так как str_replace() осуществляет замену слева направо, то при использовании множественных замен она может заменить ранее вставленное значение на другое. Смотрите также примеры на этой странице.

Эта функция чувствительна к регистру. Используйте str_ireplace() для замены без учета регистра.

Смотрите также

  • str_ireplace() — Регистронезависимый вариант функции str_replace
  • substr_replace() — Заменяет часть строки
  • preg_replace() — Выполняет поиск и замену по регулярному выражению
  • strtr() — Преобразует заданные символы или заменяет подстроки

User Contributed Notes 32 notes

A faster way to replace the strings in multidimensional array is to json_encode() it, do the str_replace() and then json_decode() it, like this:

function str_replace_json ( $search , $replace , $subject ) <
return json_decode ( str_replace ( $search , $replace , json_encode ( $subject )));

>
?>

This method is almost 3x faster (in 10000 runs.) than using recursive calling and looping method, and 10x simpler in coding.

function str_replace_deep ( $search , $replace , $subject )
<
if ( is_array ( $subject ))
<
foreach( $subject as & $oneSubject )
$oneSubject = str_replace_deep ( $search , $replace , $oneSubject );
unset( $oneSubject );
return $subject ;
> else <
return str_replace ( $search , $replace , $subject );
>
>
?>

Note that this does not replace strings that become part of replacement strings. This may be a problem when you want to remove multiple instances of the same repetative pattern, several times in a row.

If you want to remove all dashes but one from the string ‘-aaa—-b-c——d—e—f’ resulting in ‘-aaa-b-c-d-e-f’, you cannot use str_replace. Instead, use preg_replace:

= ‘-aaa—-b-c——d—e—f’ ;
echo str_replace ( ‘—‘ , ‘-‘ , $challenge ). ‘
‘ ;
echo preg_replace ( ‘/—+/’ , ‘-‘ , $challenge ). ‘
‘ ;
?>

This outputs the following:
-aaa—b-c—d-e—f
-aaa-b-c-d-e-f

Feel free to optimize this using the while/for or anything else, but this is a bit of code that allows you to replace strings found in an associative array.

For example:
= array(
‘dog’ => ‘cat’ ,
‘apple’ => ‘orange’
‘chevy’ => ‘ford’
);

$string = ‘I like to eat an apple with my dog in my chevy’ ;

echo str_replace_assoc ( $replace , $string );

// Echo: I like to eat an orange with my cat in my ford
?>

Here is the function:

function strReplaceAssoc (array $replace , $subject ) <
return str_replace ( array_keys ( $replace ), array_values ( $replace ), $subject );
>
?>

[Jun 1st, 2010 — EDIT BY thiago AT php DOT net: Function has been replaced with an updated version sent by ljelinek AT gmail DOT com]

Be careful when replacing characters (or repeated patterns in the FROM and TO arrays):

= array( «1» , «2» , «3» , «B» );
$arrTo = array( «A» , «B» , «C» , «D» );
$word = «ZBB2» ;
echo str_replace ( $arrFrom , $arrTo , $word );
?>

I would expect as result: «ZDDB»
However, this return: «ZDDD»
(Because B = D according to our array)

To make this work, use «strtr» instead:

= array( «1» => «A» , «2» => «B» , «3» => «C» , «B» => «D» );
$word = «ZBB2» ;
echo strtr ( $word , $arr );
?>

This returns: «ZDDB»

Be aware that if you use this for filtering & sanitizing some form of user input, or remove ALL instances of a string, there’s another gotcha to watch out for:

// Remove all double characters
$string=»1001011010″;
$string=str_replace(array(«11″,»00″),»»,$string);
// Output: «110010»

$string=» ml> Malicious code html> etc»;
$string=str_replace(array(» «,» «),»»,$string);
// Output: » Malicious code etc»

This is what happens when the search and replace arrays are different sizes:

= array( ‘a’ , ‘b’ , ‘c’ , ‘d’ , ‘e’ );
$replace = array( ‘A’ , ‘B’ , ‘C’ );
$subject = ‘abcdefg’ ;
echo str_replace ( $search , $replace , $subject );
// result: ‘ABCfg’

$search = array( ‘a’ , ‘b’ , ‘c’ );
$replace = array( ‘A’ , ‘B’ , ‘C’ , ‘D’ , ‘E’ );
$subject = ‘abcdefg’ ;
echo str_replace ( $search , $replace , $subject );
// result: ‘ABCdefg’
?>

No warning or error is generated in either of these cases.

As previous commentators mentioned, when $search contains values that occur earlier in $replace, str_replace will factor those previous replacements into the process rather than operating solely on the original string. This may produce unexpected output.

= array( ‘A’ , ‘B’ , ‘C’ , ‘D’ , ‘E’ );
$replace = array( ‘B’ , ‘C’ , ‘D’ , ‘E’ , ‘F’ );
$subject = ‘ABCDE’ ;

echo str_replace ( $search , $replace , $subject ); // output: ‘FFFFFF’
?>

In the above code, the $search and $replace should replace each occurrence in the $subject with the next letter in the alphabet. The expected output for this sample is ‘BCDEF’; however, the actual output is ‘FFFFF’.

To more clearly illustrate this, consider the following example:

= array( ‘A’ , ‘B’ , ‘C’ , ‘D’ , ‘E’ );
$replace = array( ‘B’ , ‘C’ , ‘D’ , ‘E’ , ‘F’ );
$subject = ‘A’ ;

echo str_replace ( $search , $replace , $subject ); // output: ‘F’
?>

Since ‘A’ is the only letter in the $search array that appears in $subject, one would expect the result to be ‘B’; however, replacement number $n does *not* operate on $subject, it operates on $subject after the previous $n-1 replacements have been completed.

The following function utilizes array_combine and strtr to produce the expected output, and I believe it is the most efficient way to perform the desired string replacement without prior replacements affecting the final result.

/**
* When using str_replace(. ), values that did not exist in the original string (but were put there by previous
* replacements) will be replaced continuously. This string replacement function is designed replace the values
* in $search with those in $replace while not factoring in prior replacements. Note that this function will
* always look for the longest possible match first and then work its way down to individual characters.
*
* The «o» in «stro_replace» represents «original», indicating that the function operates only on the original string.
*
* @param array $search list of strings or characters that need to be replaced
* @param array $replace list of strings or characters that will replace the corresponding values in $search
* @param string $subject the string on which this operation is being performed
*
* @return string $subject with all substrings in the $search array replaced by the values in the $replace array
*/
function stro_replace ( $search , $replace , $subject )
<
return strtr ( $subject , array_combine ( $search , $replace ) );
>

$search = array( ‘A’ , ‘B’ , ‘C’ , ‘D’ , ‘E’ );
$replace = array( ‘B’ , ‘C’ , ‘D’ , ‘E’ , ‘F’ );
$subject = ‘ABCDE’ ;

echo stro_replace ( $search , $replace , $subject ); // output: ‘BCDEF’
?>

Some other examples:

= array( ‘ ‘ , ‘&’ );
$replace = array( ‘ ‘ , ‘&’ );
$subject = ‘Hello & goodbye!’ ;

// We want to replace the spaces with and the ampersand with &
echo str_replace ( $search , $replace , $subject ); // output: «Hello&nbsp&&nbspgoodbye!» — wrong!

echo stro_replace ( $search , $replace , $subject ); // output: «Hello & goodbye!» — correct!

/*
Note: Run the above code in the CLI or view source on your web browser — the replacement strings for stro_replace are HTML entities which the browser interprets.
*/
?>

= array( ‘ERICA’ , ‘AMERICA’ );
$replace = array( ‘JON’ , ‘PHP’ );
$subject = ‘MIKE AND ERICA LIKE AMERICA’ ;

// We want to replace the name «ERICA» with «JON» and the word «AMERICA» with «PHP»
echo str_replace ( $search , $replace , $subject ); // output: «MIKE AND JON LIKE AMJON», which is not correct

echo stro_replace ( $search , $replace , $subject ); // output: «MIKE AND JON LIKE PHP», which is correct
?>

Обрезание строк с помощью функций PHP

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

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

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

  • mb_strimwidth()
    • mb_substr()
    • mb_substr(), substr() и mb_strcut()
    • preg_match()
    • Описание функции
    • Строка 7
    • Строка 9
    • Строки 10, 11, и 12
    • strrpos()
    • wordwrap()
    • str-split()
    • Усечение по заданному количеству слов
    • strtok()
    • Обрезка слов в WordPress
    • Заключение
    • Скачать примеры

mb_strimwidth()

mb_strimwidth() возвращает в PHP обрезанную строку по длине и добавляет конечные символы, указанные в функции. Так как это одна из основных функций PHP , ее мы рассмотрим в первую очередь. Применяется она очень просто:

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

Приведенный выше код добавляет многоточие не зависимо от того, была ли PHP обрезана строка до символа или нет. Чтобы исправить это, мы будем рассчитывать длину строки, и только после этого добавлять многоточие, если исходная строка действительно должна обрезаться. Например:

При отправке сообщений в Twitter и на другие ресурсы, где символы чувствительны к регистру, каждый символ имеет значение… и эта функция в ряде случаев сэкономит вам один пробел!

mb_substr()

Функция PHP mb_substr() « получает часть строки «. Она возвращает подстроку на основе количества символов. Позиция обрезки отсчитывается от начала строки. Позиция первого символа равна 0 . Позиция второго символа равна 1 . И так далее.

Чтобы добавить многоточие ( или любой другой конечный символ ), мы можем изменить первую функцию, которую рассматривали. Мы обрезаем строку перед добавлением $trimmarker , чтобы гарантировать, что у нас не будет добавляться в PHP обрезанной строке с конца лишний пробел.

mb_substr(), substr() и mb_strcut()

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

Если вы выводите PHP обрезанную часть строки до ближайшего слова на основе количества символов ( но без конечного многоточия ), используйте следующий код:

preg_match()

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

Описание функции

Функция принимает три параметра: $string , $length и $trimmarker ( многоточие или другие символы, которые добавляются в конце строки ).

Строка 7

Первое, что мы делаем, это проверяем длину PHP обрезанной строки после символа. Если строка короче, чем $length , то мы возвращаем эту строку.

Строка 9

Функция mb_substr() прерывает строку в $length , если это количество символов не содержит окончания слова ( пробела ). Если мы передали строку длиною 500 символов и эта строка не содержит пробелов, то будет возвращена вся строка ( так как функция preg_match не нашла окончания слова ). На данный момент мы обрезаем строку таким образом, и возвращаем ее полностью.

Строки 10, 11, и 12

Если длина нашей строки превышает максимальную длину, определенную в качестве параметра функции, мы выполняем регулярное выражение функции preg_match() , чтобы вернуть часть строки до символа с номером $length , который определяется как конец слова ( ‘/^.<1,$length>b/s’ ). Знак периода означает любой символ, кроме символа новой строки ( n ). Фигурная скобка определяет диапазон, который задает, сколько символов должен PHP обрезать в строке. Таким образом <1,$length>означает от 1 до символа $length . Наконец, b означает, что шаблон будет соответствовать окончанию слова. Мы можем производить поиск только слов целиком по шаблону, который мы предоставили. И в конце s задает поиск всех пробелов.

Так как мы не хотим, чтобы возвращаемая строка превышала длину $length , максимальное количество символов в функции preg_match должно быть равно максимальной длине минус длина $trimmarke.r . Мы должны учитывать это.

Затем мы возвращаем либо усеченную строку, либо исходную строку, если она меньше заданной длины усечения.

strrpos()

Функция strrpos() находит позицию последнего вхождения подстроки в строке. Она возвращает позицию, на которой располагается искомая подстрока относительно начала строки. Отметим также, что первая позиция в строке имеет номер 0 — а не 1 , поэтому мы учитываем это в функции, добавляя 1 к длине строки при применении функции strrpos() .

wordwrap()

Использование wordwrap() — это еще один способ, с помощью которого можно в PHP обрезать строку до пробела, хотя он не очень эффективен и не является лучшим выбором (если только обстоятельства не требуют этого). Wordwrap оборачивает строку в заданное число символов с использованием символа разрыва строки. Применив функцию PHP explode() , мы можем построить массив из каждой строки текста. Мы определяем, нужен ли $trimmarker ( конечное многоточие ), запросив, пусто ли второе значение массива. Если пусто, то строка не оборачивается.

Определение для параметра cut значения true означает, что строка всегда оборачивается до или на указанном символе.

str-split()

Функция str-split() может быть использована в приведенной выше функции для преобразования строки в массив. str-split () не разбивает строку до целого слова. С ее помощью PHP обрезает последний символ в строке ровно до 120 знаков.

Усечение по заданному количеству слов

Ниже приведен пример PHP обрезки строки по количеству символов, пробелов или слов. Это не слишком отличается от того, что мы уже делали. Затем мы сводим скорректированный массив в строку символов, максимальное количество которых задается $limit . Мы добавляем $trimmarker (…) , если наш $limit меньше, чем количество слов в массиве.

strtok()

Совместно применив strtok() и wordwrap() мы можем создать короткую, но эффективную функцию, которая будет в PHP обрезать строку до нужной длины. Как показано ниже, она не будет учитывать при усечении $length +$trimmarker . Но это удобно, если вы не слишком заботитесь о длине возвращаемой строки.

Обрезка слов в WordPress

Для возврата обрезанного слова в WordPress используется wp_trim_words . Данная функция часто применяется в сочетании с wp_strip_all_tags для очистки текста до его обработки. Конечно, есть и другие функции, которые служат для той же цели.

Заключение

Мы могли бы написать еще сотни примеров PHP обрезки строк, но когда-то нужно остановиться. Функции, приведенные в этой статье, являются частью ядра PHP , и вы можете использовать их для усечения строк. Хотя чаще всего программисты стараются избегать регулярных выражений, если другого выхода нет, вы можете прибегнуть и к их помощи.

В ряде примеров мы вернули $trimmarker, представляющий собой многоточие. При необходимости вы можете вернуть HTML-объект Ellipsis , для этого используется код …. Но лично я предпочитаю многоточие.

Скачать примеры

Скачать примеры из этой статьи вы можете здесь .

Данная публикация представляет собой перевод статьи « Truncate (Shorten) Strings to the Nearest Whole Word or Character Count with Trailing Dots using PHP Functions » , подготовленной дружной командой проекта Интернет-технологии.ру

Операции со строками в PHP

Объединение строк

С помощью знака «.» возможно объединять строки: Обратите внимание, что объединять можно не только строковые переменные. Можно объединить строку и число: Если вам понадобится вставить переменную внутри строки, то сделать это несколькими способами: В обоих случаях переменная «b» примет одинаковые значения «У нас есть 8 кусочков сыра», но соединение строк сделано по разному. В первом случае соединяются две строки и одно число. А во втором случае компилятор прочитает строку целиком и заменит значение переменно «a» на нужное. Обратите внимание на кавычки. В первом случае они одинарные, а во втором двойные. Именно двойные кавычки указывают компилятору на то, что в строке содержится переменная. Если заменить их на одинарные, то результат будет не «У нас есть 8 кусочков сыра», а «У нас есть $a кусочков сыра». Как будто «$a» — это кусок текста.

Для операции объединения строк существует сокращенная запись «.=«. С помощью неё можно быстро добавить в конец строки другую строку или даже саму себя:

Обрезка строк

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

Количество вхождений в строку

Выбор определённого символа из строки

  • HTML
    • Основы
    • Теги
  • CSS
    • Основы
    • Свойства
  • PHP
    • Основы
    • База данных
    • Объектно-ориентированное программирование
  • SQL
    • Основы
    • Советы
  • CMS
    • WordPress
    • 1С-Битрикс
  • JavaScript
    • Основы
    • Работа с DOM
    • jQuery
  • Серверное программное обеспечение
    • Apache
    • Игровые серверы
  • Средства разработки
  • Развитие и продвижение сайта
    • Почта
    • SEO
  • Хостинг MouseDC.ru
    • Личный кабинет
    • Виртуальный хостинг
    • Домены
  • Генератор паролей
  • Генератор .htpasswd

Коврик для мыши новым клиентам

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

Коврик с размерами 20 на 30 сантиметров доставляется почтовым письмом. Имеет противоскользящее покрытие снизу и мягкое тряпичное покрытие сверху. Идеально подходит для лазерных мышек.

На коврик «MouseDC.ru» действует 5 летняя гарантия для клиентов нашего хостинга. Если с ковриком случится беда и он испортится, то присылайте его нам, а взамен получите новый.

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

  • Пользователь должен быть зарегистрирован не более 30 дней назад.
  • Пользователь должен оплатить виртуальный хостинг в любой конфигурации на 12 месяцев вперёд.
  • Коврик для мышки могут получить только пользователи, которые ещё ни разу не получали его.

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

  • Коврик должен быть получен не более 5 лет назад.
  • Необходимо быть клиентом нашего хостинга с минимум одной активной услугой виртуального хостинга и положительным балансом на своей учётной записи.
  • Вам необходимо прислать нам испортившийся коврик любым доступным способом (для согласования обмена и доставки напишите нам на support@mousedc.ru).

Помощь в переносе
с другого хостинга

Хотите переехать? Мы поможем пернести всё

Для переноса Вашего сайта на наш хостинг необходимо иметь:

  • Дамп (бэкап) базы данных
  • Архив с файлами сайта

Вы можете перенести сайт самостоятельно, а можете попросить нас о помощи. Напишите нам на support@mousedc.ru. Наши специалисты помогут.

Последовательность переноса сайта с одного хостинга на другой следующая:

  • Сайт закрывается от посетителей на обслуживание. Главное чтобы посетители не видели его содержание, чтобы ничего не записывалось в базу данных.
  • Делаются бэкапы файлов и дамп базы данных.
  • На ваш оплаченный виртуальный хостинг в MouseDC.ru загружается архив с файлами сайта и распаковывается. Затем архив можно удалить с хостинга, чтобы он не занимал место.
  • Создаётся база данных в виртуальном хостинге MouseDC.ru и в неё загружается дамп (бэкап) базы данных переносимого сайта.
  • Изменяются настройки домена переносимого сайта. Необходимо прописать в «А» записи ip адрес нового сервера (сервера, на который сейчас перенесён сайт). Необходимо подождать несколько часов, пока обновятся DNS записи для домена.
  • В конфигурационных файлах сайта изменяется адрес сервера с базой данных на новый. Вводится логин и пароль от новой базы данных.
  • Проверяется соединение с базой данных через скрипты сайта. Для этого нужно перейти на любую страницу Вашего сайта (лучше в панель администрирования сайта). Если всё грузится и ошибок нет, то соединение с базой данных успешно работает.
  • Выключается режим профилактики в настройках сайта. Посетители могут продолжить использовать сайт.

Мы можем помочь Вам сделать все вышеописанные действия. Напишите нам на support@mousedc.ru. Наши специалисты помогут.

Пожалуйста, обратите внимание, что можно перенести ещё и домен сайта на наши NS серверы.

Приветствуем всех в нашем уютном дата центре! Мы предоставляем качественный хостинг малому и среднему бизнесу, новичкам и профессионалам, любителям и энтузиастам.

  • Хостинг
  • Домены
  • VPS
  • Статьи
  • Курсы
  • Документы
  • Партнёры

Php удалить часть строки

substr_replace — Заменяет часть строки

Описание string substr_replace ( string string, string replacement, int start [, int length] )

substr_replace() заменяет часть строки string начинающуюся с символа с порядковым номером start и длиной length строкой replacement и возвращает результат.

Если start — положительное число, замена начинается с символа с порядковым номером start .

Если start — отрицательное число, замена начинается с символа с порядковым номером start , считая от конца строки.

Если аргумент length — положительное число, то он определяет длину заменяемой подстроки. Если этот аргумент отрицательный, он определяет количество символов от конца строки, на котором заканчивается замена. Этот аргумент необязателен и по умолчанию равен strlen( string );, т.е. замена до конца строки string .

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

= ‘ABCDEFGH:/MNRPQR/’ ;
echo «Оригинал: $var
» ;

/* Обе следующих строки заменяют всю строку $var на ‘bob’. */
echo substr_replace ( $var , ‘bob’ , 0 ) . »
» ;
echo substr_replace ( $var , ‘bob’ , 0 , strlen ( $var )) . »
» ;

/* Вставляет ‘bob’ в начало $var. */
echo substr_replace ( $var , ‘bob’ , 0 , 0 ) . »
» ;

/* Обе следующих строки заменяют ‘MNRPQR’ in $var на ‘bob’. */
echo substr_replace ( $var , ‘bob’ , 10 , — 1 ) . »
» ;
echo substr_replace ( $var , ‘bob’ , — 7 , — 1 ) . »
» ;

/* Удаляет ‘MNRPQR’ из $var. */
echo substr_replace ( $var , » , 10 , — 1 ) . »
» ;
?>

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Как обрезать часть строки и сохранять ее в определенной строке в MySQL с помощью PHP?

Пример строки: «REGISTER 11223344 here»

Как удалить «11223344» из строки примера?

Если вы специально нацеливаете «11223344», используйте str_replace :

Вы можете использовать str_replace () , который определяется как:

Таким образом, вы можете написать код как:

Если вам нужно лучше совместить регулярные выражения, вы можете использовать preg_replace () .

предполагая, что 11223344 не является постоянным

Это вернет «REGISTERERE»

Это вернет «РЕГИСТРАЦИЯ здесь»

substr () – встроенная функция php, которая возвращает часть строки. Функция substr () примет строку как входную, индексную форму, где вы хотите, чтобы строка была обрезана. а необязательным параметром является длина подстроки. Вы можете увидеть правильную документацию и пример кода на http://php.net/manual/en/function.substr.php

ПРИМЕЧАНИЕ: индекс для строки начинается с 0.

Когда вам нужно согласование на основе правил, вам нужно использовать регулярное выражение

Это будет соответствовать первому набору чисел, поэтому, если вам нужно быть более конкретным, попробуйте:

если вы хотите удалить часть строки из заданной строки, это может помочь вам

Как я могу удалить часть строки из примера:

@@ lang_eng_begin @@ тест @@ @@ lang_eng_end
@@ lang_fr_begin @@ @@ школы lang_fr_end @@
@@ lang_esp_begin @@ test33 @@ @@ lang_esp_end

Я всегда хочу тянуть середину строки: test, school, test33 , из этой строки.
Я читал про ltrim, substr и прочее, но у меня не было хороших идей, как это сделать. Поскольку каждая из строк может иметь другую длину, например:

Я просто хочу иметь строку от середины между @@ и @@. Мэй, кто-то может мне помочь? Я старался:

можно изменить на

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

Решение

Если ваши строки всегда в этом формате explode путь выглядит просто:

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

Увидеть PHP демо . Здесь регулярное выражение соответствует @@ это не в начале строки ( (?!^)@@ ), а затем фиксирует в группе 1 любые 0+ символов, кроме новой строки, как можно меньше ( (.*?) ) до первого @@ подстрока.

Или заменить все @@. @@ подстроки с `preg_replace:

Увидеть еще одна демка . Здесь мы просто удаляем все непересекающиеся подстроки, начинающиеся с @@ , то есть любые 0+ символов кроме новой строки до первого @@ ,

Функции для обработки строк в PHP

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

Все функции для обработки строк перечислены ниже:

chr Возвращает символ по его коду ASCII
chunk_split Разбивает строку на подстроки заданной длины
crypt Зашифровывает строку с использованием одного из алгоритмов
echo Выводит одну или несколько строк
explode Разбивает строку на подстроки, ограниченные заданным разделителем, и форматирует из них массив
html_entity_decode Декодирует все HTML-представления в соответствующие символы. Функция обратно по отношению к htmlentites
htmlentites Кодирует все специальные символы в их HTML-представление
htmlspecialchars Кодирует все символы в их HTML-представление
implode Формирует строку из элементов массива
ltrim Удаляет начальные пробелы из строки
rtrim Удаляет конечные пробелы из строки
number_format Представляет число в виде строки в различных форматах
ord Возвращает ASCII-код символа
parse_str Разбивает строку URL и присваивает значение переменным
print Выводит строку
printf Выводит строку с форматированием
sprintf Возвращает строку с форматированием
setlocale Устанавливает информацию о кодовой странице
similar_text Вычисляет степень похожести двух строк
sscanf Разбивает строку по шаблону и присваивает полученные значения переменным
str_ireplace То же самое, что и str_replace, но без учета различий в регистре символов
str_pad Дополняет строку до заданной длины другой строкой
str_repeat Повторяет строку заданное количество раз
str_replace Ищет в строке все вхождения подстроки и меняет на заданную строку
str_shuffle Случайным образом перемешивает все символы в строке
str_split Формирует массив из символов строки
str_word_count Подсчитывает количество слов в строке
strcasecmp Выполняет побайтовое сравнение строк без учета регистра символов
strcht То же самое что strstr
strcmp Выполняет побайтовое сравнение строк с учетом регистра символов
strip_tags Удаляет из строки все HTML-и PHP-теги
stripos Ищет первое вхождение подстроки в строке без учета регистра символов
stristr То же самое что strstr, но без учета регистра символов
strlen Возвращает длину строки
strnatcasecmp То же самое что strnatcmp, но без учета регистра символов
strncmp Выполняет побайтовое сравнение первых n символов строк
strpos Ищет первое вхождение подстроки в строке
strrchr Ищет последнее вхождение символа в строке
strrev Инвертирует строку — прочитывает ее справа налево
strripos Ищет последнее вхождение подстроки в строке без учета регистра символов
strrpos Ищет последнее вхождение подстроки в строке
strspn Возвращает длину участка строки, состоящего из заданных символов
strstr Возвращает часть строки от первого вхождения подстроки до конца
strtolower Преобразует прописные буквы в строчные
strtoupper Преобразует строчные буквы в прописные
strtr Преобразует заданные символы в строке
substr_compare Сравнивает две строки, начиная с заданного смещения
substr_count Подсчитывает, сколько раз заданная подстрока встречается в строке
substr_replace Ищет в заданном участке строки все вхождения подстроки и меняет на другую строку
substr Возвращает заданную часть исходной строки
trim Удаляет начальные и конечные пробелы из строки
ucfirst Преобразует первую букву строки в прописную

Более подробную информацию про все строковые функции вы можете найти на странице официальной документации.

Adblock
detector