alexanev6
@alexanev6
UX / UI дизайнер

Как в PHP исправить ошибку mb_strpos(): Empty delimiter?

Здравствуйте, помогите пожалуйста решить одну задачу на PHP . Есть форма на PHP, задача состояла в том, что если кто-то вводит текст в поле X, который совпадет с текстом в поле Y, должен выводится текст из X, а совпадающий текст становиться жирным. Возникла проблема: если в поле Y нет текста, то выдается ошибка Warning: mb_strpos(): Empty delimiter
Не подскажете, как ее лучше исправить?

<?php
$text = false;
$textarea = false;
if (isset($_POST['send'])) {
	$textarea = $_POST['textarea'] ?? false;
	$text = $_POST['text'] ?? false;

	echo mb_strlen($_POST['textarea']);
	echo '<br />';
	
	if (mb_strpos($textarea, $text) !== false) echo str_replace($text, "<b>$text</b>", $textarea);
	else echo "Совпадений не найдено";
}


?>
<form name="myform" action="<?=$_SERVER['PHP_SELF']?>" method="post">
	X: <div><input type="textarea" name="textarea" value="<?=$textarea?>"></div>
	Y: <div><input type="text" name="text" value="<?=$text?>"></div>
	
	<div><input type="submit" name="send" value="Нажать"></div>
</form>
  • Вопрос задан
  • 2912 просмотров
Решения вопроса 1
@kudis
Bitrix developer
В Вашем случае нужно проверить на не false переменные $textarea и $text
в этот if
if (mb_strpos($textarea, $text) !== false)
дописать
if ($textarea && $text && mb_strpos($textarea, $text) !== false)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
DaFive
@DaFive
Проверяйте на пустоту перед mb_strpos $textarea и $text. У вас влетает false - собственно функция и ругается. Пихать false в нее нельзя.
if(!empty($textarea) && !empty($text) && mb_strpos ...)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽