|
|
|
| Короче дело такое :
есть скрипт который обрабатывает и записывает переданный текст из textarea в файл msg.txt
вот он:
$msg = fopen("forum_s/$add_ok/msg.txt", "a");
$message = htmlspecialchars($message);
$message = str_replace("\n", "<br>", $message);
$message = str_replace("", "<b>", $message);
$message = str_replace("", "</b>", $message);
$message = str_replace("[red]", "<font color=red>", $message);
$message = str_replace("[/red]", "</font>", $message);
$message = eregi_replace("(.*)\\[url\\](.*)\\[/url\\](.*)","\\1<a href=\\2>\\2</a>\\3",$message);
$messag = "<tr><td colspan=5 background=img/tab_bg1.gif height=5 class=main><a style='font-size:2px'> </a></td></tr><tr valign=top><td class=main2 width=100><b>$username</b><br><a style='font-size:10px'>Ãîðîä:$city</a></td><td class=main2 width=80%>$message</td></tr>\n";
fputs($msg, $messag);
fclose($msg);
|
но проблема такая : при выводе содержимого этого файла возникает проблема с кавичками и слэшами !
например если мы отправим такой текст :
<? Error_Reporting(E_ALL & ~E_NOTICE);
$text = file_get_contents("http://www.yandex.ru/index.html");
$mask_1="|<td class=\"ticker\\"><a href=\"(.+)<nobr>(.+)</nobr></a></td>|i";
preg_match_all($mask_1, $text, $massiv_1);
$mask_2="|<td class=\"rate\">(.+)</td>|i";
preg_match_all($mask_2, $text, $massiv_2);
echo "Курсы Валют :<br>\n";
echo $massiv_1[2][0]." : ".$massiv_2[1][0]."<br>\n";
echo $massiv_1[2][1]." : ".$massiv_2[1][1]."<br>\n";
?>
|
то после обработки , записи в файл , при выводе он отобрадается так :
<? Error_Reporting(E_ALL & ~E_NOTICE);
$text = file_get_contents(\"http://www.yandex.ru/index.html\");
$mask_1=\"|<td class=\\\"ticker\\\\\"><a href=\\\"(.+)<nobr>(.+)</nobr></a></td>|i\";
preg_match_all($mask_1, $text, $massiv_1);
$mask_2=\"|<td class=\\\"rate\\\">(.+)</td>|i\";
preg_match_all($mask_2, $text, $massiv_2);
echo \"Курсы Валют :<br>\\n\";
echo $massiv_1[2][0].\" : \".$massiv_2[1][0].\"<br>\\n\";
echo $massiv_1[2][1].\" : \".$massiv_2[1][1].\"<br>\\n\";
?>
|
В чем дело?! | |
|
|
|
|
|
|
|
для: ZooM (ССС)
(06.05.2006 в 19:38)
| | Вероятно, в конфигурационном файле php включен режим магических кавычек (magic_quotes_gpc), при котором на старте скрипта все переменные из строки запроса, форм, кукисов преобразуются так, что перед каждым слэшем, апострофом, кавычкой (и еще некоторыми спецсимволами) добавляется обратный слэш.
При необходимости, избавиться от привнесенных слэшей можно с помощью функции stripslashes:
if(get_magic_quotes_gpc())
$message = stripslashes($message);
|
| |
|
|
|
|
|
|
|
для: Trianon
(06.05.2006 в 19:46)
| | Спасибо чувак!!! | |
|
|
|