Сравнение двух строк с помощью strpos в Wordpress. Приводят ли неальфа-символы к сбою?

Я просто пытаюсь сравнить две строки, чтобы убедиться, что они точно совпадают. Если они совпадают, я вывожу список. Одна строка — это заголовок сообщения (настраиваемый тип сообщения) из Wordpress, использующий get_the_title(). Другая строка — это категория из Wordpress. Я использую get_categories(), затем оператор foreach и использую $category->name.

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

https://www.financialpoise.com/testwebs/page/2/

Я попытался выполнить htmlentities() перед сравнением строк, и это ничего не изменило. Ниже показано, как я сравниваю:

foreach ( $categories as $category ) {
    if (strpos(get_the_title(), $category->name) !== false) {
        //run code here
    }
}

Есть ли лучший/более простой способ просто сравнить две строки, чтобы увидеть, совпадают ли они?

Если нет, то почему тире или амперсанд могут привести к сбою функции strpos()? Теоретически переменные игла и стог сена могут быть в любом порядке, потому что он ищет полную строку в другой полной строке.

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

Посмотрите на полную строку (без декодирования HTML) и посмотрите, закодирована ли одна, а другая нет.

Nigel Ren 18.07.2019 20:20
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
189
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете установить их слаги и сравнить их как более простой и безопасный способ.

Это сработало для меня. Потребовалось немного времени, чтобы убедиться, что все пули одинаковы, но как только они появились, проблем не возникло. Мне даже не нужно больше использовать strpos(), я могу просто сравнить, используя ==. Спасибо!

Stephen Starzyk 22.07.2019 17:54

Другие вопросы по теме