Обернуть первое слово в строке в теге HTML с помощью PHP?

У меня есть строка, например "Hello World".

Это будет переменная, поэтому я не знаю содержимого строки, просто в ней будет пробел.

Как лучше всего добиться этого?

"<span>Hello</span> World" из оригинальной строки "Hello World"?

Спасибо!

Вы смотрели строковые функции PHP? Пробовали что-нибудь вообще?

ficuscr 30.05.2018 18:42

@ficuscr Вы правы, спасибо!

user1702965 30.05.2018 18:49
Стоит ли изучать 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 и хотите разрабатывать...
3
3
1 075
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете использовать регулярное выражение

$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;

https://3v4l.org/oTORH

Нет необходимости в циклах или регулярном выражении, требующем памяти.

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