Я веду сайт родословных собак и пытаюсь показать изображения, основанные на том, является ли собака чемпионом.
Теперь у вас есть разные чемпионы Италии, Франции и т. д.
Первая строка работает, а вторая нет для собаки, имя которой начинается с IT / CH?
<?php
if (strpos($dog_name, "CH", 0)=== false)
echo '<img src = "img/first.png"></img>';
?>
Это работает, если у собаки только CH перед именем, как CH Dudley, в связи с чем.
Этот ниже не работает, почему?
<?php
if (strpos($dog_name, "IT/CH", 0)=== false)
echo '<img src = "img/uk_champ.png"></img>';
?>
Имя собак - IT / CH Famersco Hadley.
Я действительно застрял в этом - любая помощь будет полезна.
да, например, есть строка в таблице mysql для заголовков
Да, это сделало бы изменение / исправление клички собак намного менее хлопотным, также вы сможете фильтровать без махинаций LIKE "CH%"
Ваш первый ложный, так как он не начинается с "CH", поэтому изображение печатается. Но второй верен, так как dog_name начинается с «IT / CH», поэтому это не ложь, поэтому изображение не будет напечатано. Вы должны понимать свою логику






Я считаю, что он работает отлично. В 1-м примере возвращается false, так как $ dog_name начинается не с 0. Но во 2-м примере это не false, так как начинается с «IT / CH».
Если вы хотите увидеть совпадение в любом месте строки, просто используйте strpos без третьего параметра
if (strpos($dog_name, "CH")=== false)
echo '<img src = "img/uk_champ.png"></img>';
и
if (strpos($dog_name, "IT/CH")=== false)
echo '<img src = "img/uk_champ.png"></img>';
Я тестировал его без такого же поведения 0, можно было бы подумать, что он должен вернуть 0, но нет. См. Ссылку на песочницу в моем ответе. Он также не имеет ничего общего с этой конкретной строкой, поскольку он делает то же самое с foo.
Что ж, в моем примере в вашей строке есть как «CH», так и «IT / CH». Таким образом, strpos не вернет false. Если вы проверяете, существует ли подстрока в строке, вы должны использовать if (strpos ($ dog_name, "IT / CH")! == false). Кстати, если вы имели в виду то же самое, вы можете использовать свой исходный код, изменив === false на! == false. Это обязательно сработает
Человек, я полностью пропустил ===, я обновил свой ответ. lol хороший улов.
Это не мой вопрос, но у вас есть ответ (или вы указали путь), но ваш ответ неверен. Смотрите мой ответ.
Возможно, вы захотите просто отделить это от
$dog_name, это будет намного проще в долгосрочной перспективе, особенно если контекст вашего сайта связан с рейтингом.