2016-10-19 2 views
1

Я копирую & вставные футбольные игры от Betfair, например. «Bournemouth v Tottenham», и это хранится в базе данных MySQL. Однако, когда я пытаюсь:php preg_split не распознает пробелы

preg_split('/\s+/', $row['match']); 

Как предложено здесь ранее он не расщепляется на первом пространстве (моя конечная цель будет что-то вроде «/ \ с [v] \ s /»). Когда я вручную переписываю поле в базе данных как «v», он затем раскладывает его правильно. Что это может быть с этим символом, поскольку это выглядит как пространство как в браузере, так и в PHPMyAdmin, но не анализирует его? Я пробовал  , но не повезло. Пример строка:

Барселона v Манчестер Сити - Среда 19:45

с этим разборе: http://pasteall.org/pic/show.php?id=107841 Это не не расколоть строку до «Ман Сити» пространство, а не "против ». Первый работает, так как я вручную заменил проблемные символы пробелами в базе данных.

+0

Попробуйте 'preg_split ('/ \ s +/u', $ row ['match']);'. Кроме того, могут быть другие непечатаемые символы, которые могут препятствовать разделению строки. –

+0

Не делает ничего другого. Как узнать непечатные материалы и разместить их? – Dird

+0

Скопируйте значение из БД в http://r12a.github.io/apps/conversion/ Конвертируйте поле и нажмите * Преобразовать *. Проверьте наличие дополнительных кодов, которые вы получаете. –

ответ

1

Хотя база данных говорит о символах UTF8, когда PHP спрашивает, что она говорит latin1. Раствор был:

mysqli_set_charset($dbc, "utf8"); 
Смежные вопросы