The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Почему не работает поиск через strpos()?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (PHP)
Изначальное сообщение [ Отслеживать ]

"Почему не работает поиск через strpos()?"  +/
Сообщение от xintrea (??), 19-Май-20, 14:22 
Давненько я не трогал PHP...

И вот сейчас наткнулся на такую вещь. Следующий простейший код не срабатывает:


<?php

$text='Thе best wоmеn fоr sеx in уour town: https://test.com/test';
$stopWord='for sеx';

if(strpos($text, $stopWord)!==false)
{
  echo 'Block!';
}

?>


То есть, в консоль строка "Block" не выводится.

Если же $stopWord сделать 'for' или 'sex', то поиск срабатывает.

Читаю документацию по strpos() - ничего про пробельные символы не сказано. Вроде как функция должна тупо находить подстроку. Но не находит. Почему?

[сообщение отредактировано модератором]

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 19-Май-20, 22:39   +/
какой интересный спам
>То есть, в консоль строка "Block" не выводится.

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


> "Thе best wоmеn fоr sеx in уour town".gsub(/\w/, ?_)

=> "__е ____ _о_е_ _о_ _е_ __ у___ ____"


Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2

2. Сообщение от xintrea (??), 20-Май-20, 11:00   +/
> какой интересный спам
>>То есть, в консоль строка "Block" не выводится.
> если тебя действительно интересует ответ, потому что там не все символы латинские
>
 
> > "Thе best wоmеn fоr sеx in уour town".gsub(/\w/, ?_)
> => "__е ____ _о_е_ _о_ _е_ __ у___ ____"
>

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

3. Сообщение от ДмитрийСССРemail (?), 23-Май-20, 16:22   +/
>[оверквотинг удален]
> if(strpos($text, $stopWord)!==false)
> {
>   echo 'Block!';
> }
> ?>
> То есть, в консоль строка "Block" не выводится.
> Если же $stopWord сделать 'for' или 'sex', то поиск срабатывает.
> Читаю документацию по strpos() - ничего про пробельные символы не сказано. Вроде
> как функция должна тупо находить подстроку. Но не находит. Почему?
> [сообщение отредактировано модератором]

Видимо у вас какие-то скрытые символы, сделал такой-же пример всё отработало


$text="Thе best wоmеn for sеx in уour town: https://test.com/test";
$stopWord="for sеx";

if(strpos($text, $stopWord)!==false)
{
  echo 'Block!';
}

Проверил тут http://sandbox.onlinephpfunctions.com/

Ответить | Правка | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру