private function canonicalize($str) { // trim from both sides $str = trim($str); // normalize EOL to \n $str = str_replace(["\r\n", "\r"], "\n", $str); // trim right side of all lines return implode("\n", array_map('rtrim', explode("\n", $str))); }