dllweb
@dllweb

Как правильно разбить текст по определенным кол-вам символов?

Доброго времени друзья, вопрос следующий, а собственно начну с проблемы
У меня есть много текстов, которые нужно переводить с помощью API Яндекса переводчика
Но, некоторые тексты превышают длину для одного запроса, по этому нужно разбивать текст по кусочкам, если допустим у меня на перевод готовится текст в 15000 символов, а яндекс принимает максимум 10000 то мне нужно соответственно разбить это или на 3-и или на 2-е части. Ну естественно первое что в голову приходит это разбить текст через substr(); Допустим:
$text = "Some text for translating and sent for API Yandex do translate";
$symbols_all = iconv_strlen($text);
$per_symbols = 15;
$offset = 0;
$iteration = ceil($symbols_all/$per_symbols);

$text_arr = array();

for($i=0; $i<$iteration; $i++){
    $text_arr[] = substr($text, $offset, $per_symbols);
    $offset += $per_symbols;
}

print_r($text_arr);


Но тут проблема, режет он беспощадно, а мне нужно чтобы результат обрезался до последнего пробела, чтобы слова не разбивались и перевод был корректным, что не хватает в скрипте?
  • Вопрос задан
  • 799 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Чтобы перевод был корректным, надо разбивать по предложениям, а ещё лучше - по абзацам. То есть по знаку препинания [.!?], после которого идёт пробел или перенос строки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы