У меня есть этот вывод (из другой системы), который мне нужен, чтобы поле Test было в одной строке.
Эта глупая система переносит слова по 45 символов (примерно 30 пробелов перед каждой строкой)
Вот мой пример вывода (который мне нужно ввести)
Name:
Pepsi
Test:
The Result was blah
and blah
Tester:
John
Name:
Sprite
Test:
The result was negative
Tester:
Jane
Etc etc
Иногда строка после Test: переносится словом (иногда нет)
Мне нужно, чтобы эта строка была развернута без слов, чтобы я мог импортировать ее в доступе.
Файл составляет около 2 МБ, и есть много экземпляров, которые необходимо очистить. Вот почему я пытаюсь написать этот сценарий.
Спасибо
---------------- EDIT -------------
Это то, что я придумал до сих пор. Но я не могу заставить его заменить
<?php
function replace_newline($string) {
return (string)str_replace(array("\r", "\r\n", "\n", " ", " ", " ", " "), ' ', $string);
}
function GetBetween($content,$start,$end){
$r = explode($start, $content);
foreach($r as $value){
$t = explode($end, $value); //$t[0] between value
$result = trim(preg_replace('/[\t\r\n]+/', ' ', trim($t[0])));
$result = trim($result);
$result = replace_newline($result);
if ( !strstr($result, "Name:") ) {
echo $result . "\r\n";
$test = str_replace($t[0], $result, $test);
}
}
}
$test= file_get_contents("4321.txt");
GetBetween($test, "Test:", "Tester:");
?>
Это выводит:
Результат был бла и бла
Результат был отрицательным