Итак, имеется такой код:
if($l->post_type == 'post'){
$story = $l->text;
$story = str_replace("\n", '<br>', $story); // переносы
$story = preg_replace("/(?<=^|\s)#\S{1,24}+(?=$|\s)/u", '', $story); // убираем хештеги
print $story."<br>***<br>";
}
Проблема заключается в том, что если скормить ему вот такой $l
{
"post_type": "post",
"text": "#мудрость\n\nМаядзуко как-то попивал чай, как к нему пришёл ученик за советом. \n- Маядзуко, скажите, какое самое важное наставление для вас было в жизни? \n- Их было три."
}
То выдает он следующее:
как-то попивал чай, как к нему пришёл ученик за советом. <br>- Маядзуко, скажите, какое самое важное наставление для вас было в жизни? <br>- Их было три.<br>***<br>
Мысль была о том, что preg_replace пожирает первое слово вместе с хештегом, но если скормить коду вот такой $l
{
"post_type": "post",
"text": "#мудрость \n\nМаядзуко как-то проводил занятие со своими учениками во дворе храма.\n- Кто может сказать мне название самого вкусного блюда на планете? \n- Песчаный берег около тихого лунного озера."
}
То, к привеликому удивлению, оно работает правильно
<br><br>Маядзуко как-то проводил занятие со своими учениками во дворе храма.<br>- Кто может сказать мне название самого вкусного блюда на планете? <br>- Песчаный берег около тихого лунного озера. <br>***<br>
Я уже совсем не понимаю, что к чему и почему, поэтому толкните меня на мысль, где же тут ошибка (или ткните меня туда носом), пожалуйста.