игнорирование прописных слов с помощью explode () в переполнении стека

Я новичок в PHP и пытаюсь разбить данные в текстовом файле и поместить их в массив, а затем в таблицу. Данные в текстовом файле выглядят так:

ЧЕЛОВЕК В ВЫСОКОМ ЗАМОКЕ Филиппа К. Дика опубликовал 1965 г.р., 1922 г.

Предположим, что вы не можете изменить исходные данные. Если я напишу:

$dataArray = explode(" ",$book);

это работает для большинства данных, но разбивает каждое слово названия книги на отдельный элемент. Есть ли способ, которым я могу сказать, чтобы не разбивать слова в верхнем регистре?

1

Решение

Вместо explodeвы можете попробовать использовать preg_split за это. Он разбивает строки с помощью регулярного выражения:

$book = 'THE MAN IN THE HIGH CASTLE by Philip K. Dick published 1965 born 1922';

// Split on all-lowercase words
print_r(preg_split('/\b\s*[a-z]+\s*\b/', $book));

Выход:

Array
(
[0] => THE MAN IN THE HIGH CASTLE
[1] => Philip K. Dick
[2] => 1965
[3] => 1922
)
2

Другие решения

$input = explode("by", $book);
$title = $input[0];
$stuff = $input[1];
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector