спасительный взорванный персонаж - PullRequest
1 голос
/ 04 февраля 2012

У меня есть эссе, и я пытаюсь сохранить каждое предложение в моей базе данных.Поэтому я взрываю текст с .!? символов.Но когда я делаю это, я теряю этих персонажей.как я могу взорвать строку, не потеряв символы разнесения?

Ответы [ 2 ]

4 голосов
/ 04 февраля 2012

Вы можете использовать функцию PHP preg_split с флагом PREG_SPLIT_DELIM_CAPTURE.

Это даст вам массив, содержащий предложения и разделители, но в отдельных элементах массива.

<?php
$string="Hello World. Test! Example 123? 456!";
$parts = preg_split("#([!.?])#", $string, -1, PREG_SPLIT_DELIM_CAPTURE);

var_dump($parts);
?>

... вернет следующее:

array(9) { [0]=> string(11) "Hello World" [1]=> string(1) "." [2]=> string(5) " Test" [3]=> string(1) "!" [4]=> string(12) " Example 123" [5]=> string(1) "?" [6]=> string(4) " 456" [7]=> string(1) "!" [8]=> string(0) "" }
1 голос
/ 04 февраля 2012

Просто используйте preg_split с флагом PREG_SPLIT_DELIM_CAPTURE:

$sentences = preg_split(
    '/([\?\.\!)/',
    $input,
    -1,
    PREG_SPLIT_DELIM_CAPTURE
);

Полученный массив $ фраз будет работать как массив (,, ..., ...)

...