У меня есть строка, например "Hello World".
Это будет переменная, поэтому я не знаю содержимого строки, просто в ней будет пробел.
Как лучше всего добиться этого?
"<span>Hello</span> World" из оригинальной строки "Hello World"?
Спасибо!
Возможный дубликат Оберните <b> -тэг вокруг первого слова строки с помощью preg_replace
@ficuscr Вы правы, спасибо!






Вы можете использовать регулярное выражение
$changed = preg_replace('/^(\w+)/isux', '<span>$1</span>', $str);
Вы можете сделать что-то вроде этого, если просто оборачиваете первое слово в диапазоне:
$segments = explode(' ', $string);
$html = '';
for ($i = 0; $i < count($segments); $i++) {
if ($i === 0) {
$html .= '<span>' . $segments[$i] . '</span>';
continue;
}
$html .= ' ' . $segments[$i];
}
Вы также можете использовать explode, implode и array_slice. Explode и implode разделяет или объединяет строку в массив или из него. Array_slice принимает несколько элементов в массиве. В этом случае я охватываю первый элемент, тогда остальная часть массива объединяется с пространством.
$string = "hello world. Hello world";
$words = explode(' ', $string);
$html = '<span>' . $words[0] . '</span> ' . Implode(" ", array_slice($words,1));
Echo $html;
Нет необходимости в циклах или регулярном выражении, требующем памяти.
Вы смотрели строковые функции PHP? Пробовали что-нибудь вообще?