Как сделать поиск в строке php

Обновлено: 07.07.2024

Главная Строковые функции Функции поиска в тексте

Поиск первого вхождения символа в строку.

Данная функция работает идентично функции strstr()

Определяет отсутствие начальных символов в строке.
Синтаксис:

Функция strspn() возвращает длину начального фрагмента строки str1, состоящего полностью не из символов, которые есть в строке str2.

Поиск в строке любого символа из заданного набора (PHP5)

strpbrk() ищет в строке haystack символы из набора char_list и возвращает строку начиная с той позиции, где был найден символ (или FALSE если символ не найден). Параметр char_list чувствителен к регистру.

Поиск первого вхождения подстроки в строку.
Синтаксис:

Функция strstr() возвращает участок строки, заданной в параметре haystack, начиная с первого фрагмента, указанного в параметре needle и до конца.
В случае неудачи возвращает false.
Данная функция чувствительна к регистру.
В случае, если needle не является строкой, то значение преобразуется в целое и используется как код искомого символа.

Нахождение первого вхождения подстроки, не учитывая регистр.
Синтаксис:

Функция stristr() возвращает участок строки, заданной в параметре haystack, начиная с первого фрагмента, указанного в параметре needle и до конца.
В случае неудачи возвращает false.
Данная функция нечувствительна к регистру.
В случае, если needle не является строкой, то значение преобразуется в целое и используется как код искомого символа.

Поиск последнего вхождения подстроки.
Синтаксис:

Функция strrchr() возвращает участок строки, заданной в параметре haystack, начиная с последнего фрагмента, указанного в параметре needle и до конца.
В случае неудачи возвращает false.
Данная функция чувствительна к регистру.
В случае, если needle не является строкой, то значение преобразуется в целое и используется как код искомого символа.

Находит позицию первого вхождения подстроки в заданной строке.
Синтаксис:

Функция strpos() пытается найти в строке were подстроку what и в случае успеха возвращает позицию (индекс) этой подстроки в строке.
Первый символ строки имеет индекс 0. Необязательный параметр fromwhere можно задавать, если поиск нужно вести не с начало строки, а с какой-то другой позиции. В этом случае следует эту позицию передать в fromwhere. Если подстроку не удалось найти, функция возвращает false.
Если параметр what не строка, в этом случае его значение преобразуется в целое и используется как код искомого символа.

Находит позицию первого вхождения подстроки в заданной строке без учета регистра.
Синтаксис:

Функция stripos() пытается найти в строке were подстроку what и в случае успеха возвращает позицию (индекс) этой подстроки в строке.
В отличие от strpos(), эта функция не учитывает регистр символов. Первый символ строки имеет индекс 0.
Необязательный параметр fromwhere можно задавать, если поиск нужно вести не с начало строки, а с какой-то другой позиции.
В этом случае следует эту позицию передать в fromwhere. Если подстроку не удалось найти, функция возвращает false.
Если параметр what не строка, в этом случае его значение преобразуется в целое и используется как код искомого символа.

Примечание: Функция stripos() может применяться для поиска данных в двоичной форме.
Поддержка: PHP 5

Находит в заданной строке последнюю позицию, в которой находится заданный фрагмент.
Синтаксис:

Данная функция ищет в строке where последнюю позицию, в которой встречался символ what (если what -
строка из нескольких символов, то выявляется только первый из них, остальные не играют никакой роли).

Если искомый символ стоит первый в строке или его вообще нет, функция возвратит 0.

В случае, если искомый символ не найден, возвращает false.

substr_count

Находит количество вхождений фрагмента в строку.
Синтаксис:

Функция substr_count() возвращает число фрагментов what, присутствующих в строке where.

Определяет присутствие начальных символов в строке.
Синтаксис:

Функция strspn() возвращает длину начального фрагмента строки str1, состоящего полностью из символов, которые есть в строке str2.

Как заменить элемент в строке, еще сложнее найти и заменить элемент в строке, это может быть слово, часть слова. код Какие функции существую для замены в строке!?

Я не буду обозревать все функции которые существуют! Расскажу о той, которой сам пользуюсь! Эта функция str_replace.

Поиск и замена в строке php

Как заменить один элемент строки!?

У нас есть некая строка, в которой требуется найти какой-то элемент и заменить его на другой!

Здесь текст с нижним тире_, которое_ надо заменить на обыкновенное -

Мы воспользуемся функцией str_replace

Для этой функции и множества аналогичных нужно запомнить, что внутри неё…

Нам потребуется переменная…

Замена str_replace будет иметь такой вид:

Как видим наше подчеркивание заменилось удачно!

Как заменить несколько элементов строки!?

Чем еще замечательна функция str_replace – тем, что она умеет заменять не только один элемент строки, но и несколько!

Почему я решил сегодня написать эту страницу… вчера у меня задача стояла заменить в строке несколько элементов например:

Если вы нажмете по данной ссылке и посмотрите в адресную строку, то увидите вот такой адрес…

Чтобы сто раз не повторять поместим её в переменную - она нам понадобится.

В этой строке нам нужно заменить три элемента . в общем не важно сколько будет у вас элементов и сколько их вообще нужно заменить в строке!

Поэтому я и люблю эту функцию!

У нас есть три элемента, которые мне требовалось заменить… " ? & = "

Создадим массив с элементами, которые нужно заменить в строке:

Результат замены в строке нескольких элементов на один php:

Как заменить пробелы в Php

Для того, чтобы заменить пробелы в php, нам опять потребуется:

1). Тестовый текст в переменной. в котором будут пробелы:

$objekt = "Это тестовый текст с пробелами, которые мы будем заменять, на что-то, не важно на что!";

Берем нашу функцию для замены, в первом значении функции ставим пробел. во втором.. ставим , то на что будем заменять пробел,

ну например Ё , и третьим будет наша переменная и выведем с помощью echo прямо здесь.

Результат поиска измены пробела на что-то:

Это Ё тестовый Ё текст Ё с Ё пробелами, Ё которые Ё мы Ё будем Ё заменять, Ё на Ё что-то, Ё не Ё важно Ё на Ё что!

Как заменить слово/слова в Php

Для того, чтобы заменить слово в тексте нам потребуется некий текст с некими словами, и желательно, чтобы это слово повторялось несколько раз! И если это слово будет найдено, то покрасим в какой-то цвет! А давайте вот этот текст, в котором и идет речь о замене слова, покрасим данное слово в красный цвет!(если вы не поняли, то он кричит - "это гениально. ")

И тут внимание! Выше было показано, как можно найти, какой-то элемент в строке и заменить его! Еще можно было заменить из массива!
А что если мы заменим. массив на массив!? Интересно!? Тогда погнали!
Для этого. нам понадобится. массив $search

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

Ну и собственно текст, где и будем менять массив на массив:

И выведем прямо здесь нашу замену слова:

Результат замены слова

Найти первое повторяющееся слово и выделить его

Предположим, что вам нужно найти первое повторяющееся слово в тексте и его же нужно подчеркнуть!

Создадим сразу несколько переменных с разным текстом:

$text = 'This is do a test - "do do do"';
$text_1 = 'Это тестовый текст в котором есть повторяющееся слово текст';
$text_2 = 'Это слово и тестовый текст в котором есть повторяющееся слово и слово текст';
$text_3 = 'Это слово и тестовый текст в котором есть повторяющееся слово и слово это текст ';

Разбиваем текст по пробелу с помощью explode

Далее нам потребуется два цикла. Внутри второго чикла пишем условие, если слово в массиве будет повторяться, то создаем счетчик, по имени слова:

Далее следующее условие, если счетчик будет равен 2, то прерываем цикл :

Далее Измененный массив преобразуем в строку:

Запакуем это все в функцию :

function find_first($thetext)
<
$ex = explode(' ', $thetext);
for ($i = 0; $i '.$ex[$d].' '; break; >
>
return implode(' ', $ex);
>

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

echo find_first($text);
echo '
';
echo find_first($text_1);
echo '
';
echo find_first($text_2);
echo '
';
echo find_first($text_3);

Пример функции, которая найдет в тексте первое встречающиеся слово и выделит его :

This is do a test - "do do do"

Это тестовый текст в котором есть повторяющееся слово текст

Это слово и тестовый текст в котором есть повторяющееся слово и слово текст

Это слово и тестовый текст в котором есть повторяющееся слово и слово это текст

Сохранил старый текст на картинке и дальше расскажу зачем. и сравните 4 строку на скрине и выше идущую строку №4:

Пример функции, которая найдет в тексте первое встречающиеся слово и выделит его :

Пример функции, которая найдет в тексте первое встречающиеся слово и выделит его : Как решил задачку.

Написал я данную функцию.

И мне нужно было куда-то ехать.

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

И такая функция вполне способна решить проблему "ПРОПИСНЫХ" букв в начале предложения!

Поэтому следующий пункт, где я занимался какими-то извращениями просто не нужен!

Замена слов в скобках php

Тут встретился поисковый запрос - Замена слов в скобках php - я не знаю, что конкретно вы имели ввиду задавая такой вопрос поисковику, но я тут вспомнил, замечательную фишку. которую уже использую с незапамятных времен.
В чем фишка!? Как это работает . например, очень частое применение разных ссылок, привело меня к мысли, что надо создать скрипт, который будет обрабатывать, слово в скобках.

Если напишу вот так : php в коде. либо css , то никаких квадратных скобок вы не увидите. смотри скрин ниже:

Замена слов в скобках php

Замена слов в скобках php

После обработки php скриптом, это будут обычные ссылки, слова в скобках были заменены на :

В первом случае с php:

Во втором случае с css:

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

Поскольку довольно редкий поисковый запрос. напишите - вам интересен этот скрипт?!

Онлайн нахождение первого и повторяющихся слов

Далее мы используем форму для ввода данных, внутри уже расположен какой-то текст.

Необходимо выбрать, что будем искать :

Найти первое повторяющиеся слово в тексте. и

Найти все повторяющиеся слова в тексте.

Выбираем режим - нажимаем найти!

Скрипт - найти все повторяющиеся слова в тексте и выделить их.

Через некоторое время пришлось вернуться к этой теме, поскольку поиск всех повторяющихся слов работал несколько некорректно!

Это уже реализовано и внедрено выше пунктом - поиск всех повторяющихся слов.

Не буду рассказывать всю функцию.

А лишь основное:

Алгоритм нахождения всех двойных слов и подсветка.

Возьмем из скрипта - нахождение первого повторяющегося слова - первый цикл, удалим break;

И добавим - выделено красным(1,3) - создание массива с повторяющимися словами.

Отсекаем предлоги в два и менее знака( and $ex [$i][2] ).

for ($i = 0; $i and $ex [$i][2] )

Далее нам придется решить, как искать и сравнивать повторяющиеся такие слова, как возьмем слово "лампа" :

лампа и лампа(и любой знак препинания и др.знаки)

лампа и лампа(и любой тег html, например перенос
)

В общем можно много и дого рассказывать -см выше - "найти все повторяющиеся слова".

Поисковые запросы.

Php найти слово в скобках

Поисковый запрос - "php найти слово в скобках", к сожалению, этого недостаточно, найти и. что сделать!?

php найти слово в скобках - подчеркнуть!? На странице рассмотрели нахождение повторяющегося слова

php найти слово в скобках - удалить!?

php найти слово в скобках - заменить!? Также была тема замены слова в скобках(скобки без разницы какие, нужно в скрипте это прописать)

php найти слово в скобках - получить текст внутри скобок. Для данного вопроса, необходимы уточнения. первое ли вхождение в строке, либо все вхождения в строке.

Заменить N-ый символ в строке php

Поисковый запрос "заменить 5 символ в строке php", "заменить 2 символ в строке php" - в общем объединим, данные поисковые запросы в один: "Заменить N-ый символ в строке php"
Как это сделать!? Если речь идет о "кириллице в utf-8", то придется поднапрячься.

А если для латиницы, то вообще легко.

Раз уж пошла речь о замене 5, то и возьмем это число и фразу:

Загоним наш т@.@. �� ���.`.� `.му элементу строки, как к ячейке массива и поставим туда, какой-то знак, пусть это будет вопросительный .

Вопрос на засыпку. почему нельзя таким образом заменить символ на несколько символов. что произойдет!?

Заменить N-ый символ на любое количество знаков.

Если вы не ответили на вопрос, почему нельзя заменить один символ на несколько символов, то ответ простой! Символ можно заменить только на 1 символ! Иначе структура переменной поломается. и замену не увидите, и все, что после этого символа, вместе с символом.

А если нужно N-ый символ строки заменить на слово!?

На предложение и т.д. да на что угодно.

Разобьем(explode) строку в массив, по тому символу, который хотим заменить :

Соединим(implode) массив в строку, в первое значение помещаем все то, на что хотим заменить. Либо туда переменную.

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

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


Майя

Здравствуйте. Первое, что на ум пришло по вашему вопросу:
Найти первое повторяющееся слово и выделить его

Функция 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( ):

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

strcmp()

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

  • 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 разделители)

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).

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

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_count( ) возвращает количество вхождений подстроки в заданную строку. Синтаксис функции substr_count( ): int substr_count (string строка, string подстрока) В следующем примере функция substr_count( ) подсчитывает количество вхождений подстроки ain:

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() заменяет все символы новой строки (\n) эквивалентными конструкциями HTML.

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

string nl2br (string строка)

Символы новой строки могут быть как видимыми (то есть явно включенными в строку), так и невидимыми (например, введенными в редакторе). В следующем примере текстовая строка преобразуется в формат HTML посредством замены символов \n разрывами строк: При последующем выводе $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.

В следующем примере функция 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 в простой текст. Функции, описанные ниже, помогут вам в решении этой задачи.

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).

stripslashes

- Удаляет экранирование символов, произведенное функцией addslashes() Удаляет экранирующие бэкслэши. (\' преобразуется в ', и т.д.). Двойные бэкслэши (\\) преобразуется в одиночные(\).

wordwrap()

> The first Matrix I > designed was quite > naturally > perfect, it was a > work of art - > flawless, sublime. > A triumph > equalled only by > its monumental > failure. The > inevitability > of its doom is > apparent to me now > as a consequence > of the > imperfection > inherent in every > human being. Thus, > I > redesigned it > based on your > history to more > accurately reflect > the varying > grotesqueries of > your nature. > However, I was > again > frustrated by > failure.

Данная функция работает идентично функции strstr().

strstr

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

Функция strstr() возвращает участок строки, заданной в параметре haystack, начиная с первого фрагмента, указанного в параметре needle и до конца.

В случае неудачи возвращает false.

Данная функция чувствительна к регистру.

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

stristr

Нахождение первого вхождения подстроки, не учитывая регистр.

Функция stristr() возвращает участок строки, заданной в параметре haystack, начиная с первого фрагмента, указанного в параметре needle и до конца.

В случае неудачи возвращает false.

Данная функция нечувствительна к регистру.

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

strrchr

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

Функция strrchr() возвращает участок строки, заданной в параметре haystack, начиная с последнего фрагмента, указанного в параметре needle и до конца.

В случае неудачи возвращает false.

Данная функция чувствительна к регистру.

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

strpos

Находит позицию первого вхождения подстроки в заданной строке.

Функция strpos() пытается найти в строке where подстроку what и в случае успеха возвращает позицию (индекс) этой подстроки в строке. Первый символ строки имеет индекс 0. Необязательный параметр fromwhere можно задавать, если поиск нужно вести не с начало строки, а с какой-то другой позиции. В этом случае следует эту позицию передать в fromwhere. Если подстроку не удалось найти, функция возвращает false.

Если параметр what не строка, в этом случае его значение преобразуется в целое и используется как код искомого символа.

stripos

Находит позицию первого вхождения подстроки в заданной строке без учета регистра.

Функция stripos() пытается найти в строке were подстроку what и в случае успеха возвращает позицию (индекс) этой подстроки в строке. В отличие от strpos(), эта функция не учитывает регистр символов. Первый символ строки имеет индекс 0. Необязательный параметр fromwhere можно задавать, если поиск нужно вести не с начало строки, а с какой-то другой позиции. В этом случае следует эту позицию передать в fromwhere. Если подстроку не удалось найти, функция возвращает false.

Если параметр what не строка, в этом случае его значение преобразуется в целое и используется как код искомого символа.

Примечание: Функция stripos() может применяться для поиска данных в двоичной форме.

Поддержка: PHP 5

strrpos

Находит в заданной строке последнюю позицию, в которой находится заданный фрагмент.

Данная функция ищет в строке where последнюю позицию, в которой встречался символ what (если what - строка из нескольких символов, то выявляется только первый из них, остальные не играют никакой роли).

Если искомый символ стоит первый в строке или его вообще нет, функция возвратит 0.

В случае, если искомый символ не найден, возвращает false.

substr_count

Находит количество вхождений фрагмента в строку.

Функция substr_count() возвращает число фрагментов what, присутствующих в строке where.

strspn

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

Функция strspn() возвращает длину начального фрагмента строки str1, состоящего полностью из символов, которые есть в строке str2.

strcspn

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

Функция strspn() возвращает длину начального фрагмента строки str1, состоящего полностью не из символов, которые есть в строке str2.

Читайте также: