Задача. Скрипт получает из массива строку с текстом подсказки. Строка может содержать что угодно: текст латиницей или кирилицей, разделители (переносы, табуляции..), кавычки всевозможные и т. д.
Например:
$str = "Подсказка:
Вышел месяц из тумана,
Вынул ножик из кармана..";
Эту строку нужно добавить к урлу, как переменную $str, которая методом get передается скрипту help.php, то есть:
help.php?str=....
Но не просто все. Этот самый help.php нужно открыть в новом окошке с помощью JavaScript функции window.open().
Есть функция:
funtion help(str) {
window.open(\'help.php?str=\'+str, \'width=400,height=200,resizable=0,scrollbars=1\');
}
Вопрос: как предварительно обработать строку для того, чтобы сгенерировать работающую ссылку типа
echo "<a href=javascript:help(\'".$str."\')>Help</a>";
Пробовал urlencode():
$str = urlencode($str);
echo "<a href=javascript:help(\'".$str."\')>Help</a>";
JavaScript выдает ошибку "Unterminated string constant". Это тем более примечательно, что прямая ссылка
echo "<a href=help.php?str=".$str.")>Help</a>";
работает замечательно.
В чем может быть проблема? И как нормальные люди обрабатывают строку предварительно в таких случаях, чтобы учесть любое содержание строки?