PHP поиск в тексте поможет в нелегком труде редакторов

PHP поиск в тексте поможет в нелегком труде редакторов

От автора: иногда забудешь какое-нибудь слово во время разговора, а потом мучаешься, что сказал не все и не полностью. Вроде, как многое осталось «за кадром». Вот если можно было бы создать какую-нибудь программную «напоминалку». Но тогда нам потребуется реализовать PHP поиск в тексте, чтобы вспомнить забытое.

Зачем что-то искать?

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

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

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

Поможем редактуре!

В чем соль! Есть у меня один редактор знакомый. Он мучается, когда авторы скидывают ему много статей. Из-за этого редактор просиживает дни и ночи, проверяя в них наличие ключевых запросов. Давайте (программным путем) поможет ему вершить свой нелегкий труд. Для этого мы напишем специальную функцию:

<?php
 function check_string($stroka, $key)
{
    foreach($key as $k)
    {
        if(strpos($stroka, $k) !== false){
           $a++;
            echo "$a ключевик есть в тексте"."<br />";
           }
        else
        {
         $a=$a+1;
         echo "$a ключевика нет в тексте"."<br />";
        }
    }
}
?>

Вкратце поясню, как здесь происходит поиск слов в тексте PHP. Функция принимает в качестве параметров текст и перечень ключей (массив). Переборка текста происходит с помощью цикла foreach. Для поиска элемента массива (ключа) применяем встроенную функцию strops(). Сразу отмечу, что она является регистрозависимой и при отсутствии совпадений возвращает false. На этом и построена работа проверки if else

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

<?php
$stroka = 'Иногда забудешь какое-нибудь слово во время разговора, а  потом тебя преследует чувство того, что сказал не все и не полностью.
Вроде, как многое осталось «за кадром». Вот если можно было создать какую-нибудь программную «напоминалку».
Но тогда нам потребуется PHP поиск в тексте, чтобы вспомнить забытое.';
$key = array('PHP поиск','не','какое-нибудь слово', 'Батарея');
check_string($stroka,$key)
?>

PHP поиск в тексте поможет в нелегком труде редакторов

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

Ищем гиперссылки!

Ссылки являются важной составляющей любой веб-страницы. Их качество может влиять на результаты ранжирование. Присутствие ссылок может расцениваться поисковыми системами как спам.… В общем, осуществлять анализ разметки на присутствие тега <a> нужно. Не будем перечислять все случаи.

Чаще всего в Сети можно наткнуться на вариант реализации, в котором для парсинга HTML кода используются регулярные выражения. Но это не всегда приемлемо и с ними много мороки. Чтобы осуществить PHP поиск ссылок в тексте, я предлагаю использовать возможности объектного представления документа. Пример:

<?php
$html = '<a href="http://webformyself.com/bluzhdaem-v-dremuchem-lesu-ili-kak-v-php-sozdat-bazu-mysql/">First link</a>
<p> Иногда забудешь какое-нибудь слово во время разговора, а  потом тебя преследует чувство того, что сказал не все и не полностью. Вроде, как многое осталось «за кадром». </p>
<a href="http://webformyself.com/php-poisk-v-stroke-obzor-dostupnogo-instrumentariya/">Second link</a>';
$dom = new DOMDocument;
$dom->loadHTML($html);
$razmetka = $dom->getElementsByTagName("a");
foreach ($razmetka as $cod) {
    echo $cod->nodeValue." ";
    echo $cod->getAttribute('href')."<br>";
    echo "<br>";
}
?>

PHP поиск в тексте поможет в нелегком труде редакторов

Ну, а для поиска даты в тексте PHP – регулярные выражения как раз и пригодятся. Но это мы оставим на следующий раз. Иначе с такими объемами «поглощаемой» информации можно забыть и свое имя, и фамилию. Кстати, вы, случайно не помните, как меня зовут? :) .

Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Курс по программированию на языке PHP

Изучите PHP с нуля до результата!

Смотреть курс

Метки:

Комментарии Вконтакте:

Комментарии Facebook:

Комментарии (4)

  1. Денис

    Спасибо за статью. В большинстве случаев когда я ищу точное вхождение ключа, пользуюсь стандартным поиском любой проги контр+F. Гораздо сложнее (если не выделено) выполнить поиск разбавленной формы ключа.
    Думаю и поиск по сайту был бы тоже эффективней. Но вот как реализовать ?

  2. Дмитрий

    Выдаёт ошибку :
    Fatal error: Call to undefined function check_string() in X:\home\….и так далее

    • Андрей Кудлай

      Проверьте доступность функции check_string(), поскольку ошибка сообщает, что функция не определена.

      • Денис

        Как реализовать поиск ключа имеющего разбавочную форму — изменены окончания, переставлены слова местами, разбавлены словами?

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

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

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree