Решение Марио работает хорошо (спасибо за это Марио - спас мой день).Может быть, кто-то может объяснить, почему он превратил мои более поздние проверки для кросс-платформенных совместимых разрывов строк, таких как
(strstr($text, PHP_EOL))
, в FALSE, даже если разрывы строк существовали."чтобы PHP_EOL исправил проблему:
$text = join(PHP_EOL, array_map("trim", explode(PHP_EOL, $text)));