Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите.. чтото не то с fwrite()
 
 автор: resett   (21.08.2006 в 20:51)   письмо автору
 
 


<? include("config/config.php"?>
<head>
<style>
<? include("design/$skin/admin/style.css"); ?>
</style>
<?
if($todo == "update" && $new_data !== "")
{
    
$fd fopen("config/content_list.php","w");
    
$new_data str_replace($edit_sep,$content_seporator,$new_data);
    
$new_data str_replace("\r\n","",$new_data);
    
fwrite($fd,$new_data,102400);
    
fclose($fd);
}
?>
</head>
<p><? echo $admin['menu_edit_title'?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<? echo $admin['go_to_adminpanel'?></p>
<table border="0" width="1039" height="502">
    <tr>
        <td height="502" width="661" valign="top">
        <form method="POST" action="<? echo $_SERVER['PHP_SELF'?>">
            <p><textarea rows="25" name="new_data" cols="80"><?
            
            $data_arr 
file("config/content_list.php");
            
$data $data_arr[0];
            
$data str_replace($content_seporator,$edit_sep,$data);
            echo 
$data;            
            
?></textarea></p>
            <p>&nbsp;</p>
            <p><input type="submit" value="<? echo $admin['button_send'?>" name="B1">&nbsp;&nbsp;<input type="reset" value="<? echo $admin['button_reset'?>" name="B2"></p>
            <input type="hidden" name="todo" value="update">
        </form>
    </td>
        <td height="502" width="362" valign="top" align="center"><? echo $admin['menu_edit_help'?></td>
    </tr>
</table>



Это код скрипта который берет строку из файла, меняет разделитель на более нормальный (с [dratatatttatat@#$@] на \n) потом содержание разделенных частей меняется пользователем и скрипт отправляет результат самому себе, обрабатывает меняя разделитель \n на [dratatatttatat@#$@] и пишет в файл content_list.php.. Тоесть в файле должно поменяться только содержание кусков между [dratatatttatat@#$@]

Приведу пример ошибки!

Это состояние файла до..


Home[##!@C_Sepor**#$$@!][title_only]Работы Cool-T[##!@C_Sepor**#$$@!][sub]SimpleCMS[##!@C_Sepor**#$$@!][sub]TableForce[##!@C_Sepor**#$$@!][space][##!@C_Sepor**#$$@!][---][##!@C_Sepor**#$$@!][space][##!@C_Sepor**#$$@!][title_only][warn]This Site


Потом запускаем скрипт и жмем отправит ничего не меняя


Home
[##!@C_Sepor**#$$@!][title_only]Работы Cool-T
[##!@C_Sepor**#$$@!][sub]SimpleCMS
[##!@C_Sepor**#$$@!][sub]TableForce
[##!@C_Sepor**#$$@!][space]
[##!@C_Sepor**#$$@!][---]
[##!@C_Sepor**#$$@!][space]
[##!@C_Sepor**#$$@!][title_only][warn]This Site


Че за фигня? не подскажите??

   
 
 автор: cheops   (22.08.2006 в 12:49)   письмо автору
 
   для: resett   (21.08.2006 в 20:51)
 

>с [dratatatttatat@#$@] на \n
Это в какой строке происходит? Что-то найти не могу...

   
 
 автор: resett   (22.08.2006 в 15:12)   письмо автору
 
   для: cheops   (22.08.2006 в 12:49)
 

А просто конфиг.пхп не выложил..
[dratatatttatat@#$@] или [##!@C_Sepor**#$$@!] это переменная $content_seporator.
На самом деле переменная $content_seporator равна [##!@C_Sepor**#$$@!] но я написал [dratatatttatat@#$@] чтоб долго не искать и не вспоминать ее..

Строка номер.. кароч тут она последняя...


<? include("config/config.php"#!!!!!! воттут и стоят у меня значения переменных $edit_sep и $content_seporator (\n и [##!@C_Sepor**#$$@!] соответственно)?> 
<head> 
<style> 
<? include("design/$skin/admin/style.css"); ?> 
</style> 
<? 
if($todo == "update" && $new_data !== ""

    
$fd fopen("config/content_list.php","w"); 
    
$new_data str_replace($edit_sep,$content_seporator,$new_data);
    
fwrite($fd,$new_data,102400); 
    
fclose($fd); 

?> 
</head> 
<p><? echo $admin['menu_edit_title'?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<? echo $admin['go_to_adminpanel'?></p> 
<table border="0" width="1039" height="502"> 
    <tr> 
        <td height="502" width="661" valign="top"> 
        <form method="POST" action="<? echo $_SERVER['PHP_SELF'?>"> 
            <p><textarea rows="25" name="new_data" cols="80"><? 
             
            $data_arr 
file("config/content_list.php"); 
            
$data $data_arr[0]; 
            
$data str_replace($content_seporator,$edit_sep,$data);


Я че токо не делал, а он неможет записать в файл это все в одну строку, просто у меня на сайте парсер контент листа, и мне нужен нормальный редактор этого листа... он должен привести вид файла с листом контента в нормальный вид (тоесть вместо этих агромных разделителей он должен показать пользователю всю эту байду разделенную по строчкам, затем пользователь это отредактирует,отправит скрипту,тот в свою очередь вместо разделения по строчкам разделит куски разделителем [##!@C_Sepor**#$$@!] (в результате получится ИМЕННО !СТРОКА!) и запишет все это в ОДНУ СТРОКУ а не так как он это сделал.. см. выше)

   
 
 автор: resett   (24.08.2006 в 12:03)   письмо автору
 
   для: resett   (22.08.2006 в 15:12)
 

Ну помогите плиз!!

   
 
 автор: cheops   (25.08.2006 в 11:56)   письмо автору
 
   для: resett   (21.08.2006 в 20:51)
 

Блок
<? 
if($todo == "update" && $new_data !== ""

    
$fd fopen("config/content_list.php","w"); 
    
$new_data str_replace($edit_sep,$content_seporator,$new_data); 
    
$new_data str_replace("\r\n","",$new_data); 
    
fwrite($fd,$new_data,102400); 
    
fclose($fd); 

?>

попробуйте заменить на
<? 
if($todo == "update" && $new_data !== ""

    
$fd fopen("config/content_list.php","w"); 
    
$new_data str_replace($edit_sep,$content_seporator,$new_data); 
    
$new_data str_replace("\r\n","",$new_data); 
    
$new_data str_replace("\n","",$new_data); 
    
fwrite($fd,$new_data,102400); 
    
fclose($fd); 

?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования