$process
с текстом:$process = <<<TEXT
Lorem ipsum
Lorem ipsum
Lorem ipsum
TEXT;
$process = preg_split( "/[\n]/", $process );
$process
опять одним блоком текста. Чтобы получилось так (для примера):$process = <<<TEXT
<span><b>Lorem</b> ipsum</span>
<span><b>Lorem</b> ipsum</span>
<span><b>Lorem</b> ipsum</span>
TEXT;
$process = foreach( $process as $value ) {
// Здесь if(), else и т. д.
"<span>" . $value . "</span>";
}
return $process; // echo здесь не подходит, поскольку надо вернуть в переменную
$process
ничего не возвращает и валится с ошибкой. Почему?/* @var string Исходный текст в синтаксисе HEREDOC */
$process = <<<TEXT
Lorem ipsum
Lorem ipsum
Lorem ipsum
TEXT;
/**
* Оборачивает элемент в тег <span>
* @param type $element
* @return type
*/
function spanElement( $element )
{
return "<span>{$element}</span>";
}
// Получаем построчно исходный текст
// примечание: если есть средство работающее без регулярок, то лучше использовать его
$arProcess = explode("\n", $process);
// Применяем к каждому элементу нашу функцию, модицифируя ее значения
// см: http://php.net/array-map
$arProcess = array_map('spanElement', $arProcess);
/*
При вызове var_dump на $arProcess результат будет следующим:
array(3) {
[0] =>
string(24) "<span>Lorem ipsum</span>"
[1] =>
string(24) "<span>Lorem ipsum</span>"
[2] =>
string(24) "<span>Lorem ipsum</span>"
}
*/
// Вновь объединяем это все в исходный текст
$process = implode("\n", $arProcess);
/*
При вызове var_dump на $process результат будет следующим:
string(74) "<span>Lorem ipsum</span>
<span>Lorem ipsum</span>
<span>Lorem ipsum</span>"
*/
$my_var = foreach ...
ошибочна уже сама по себе. $process = foreach( $process as $value ) {
// Здесь if(), else и т. д.
"" . $value . "";
}
foreach($process as &$value) {
$value = "<span>" . $value . "</span>";
}