Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Редактирование PHP файла.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: подмогите с написанием.
Prokofe
Отправлено: 13 Июня, 2011 - 23:49:52
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Делаю какое-то подобие админ панели, цель вывести список файлов из директории со страницами (примеры взяты с данного сайта), есть (правда пока не вышло кнопку напротив каждой строки сделать):

PHP:
скопировать код в буфер обмена
  1. <?PHP $dir = "../pages/";
  2.  
  3. // Открыть заведомо существующий каталог и начать считывать его содержимое
  4. if (is_dir($dir)) {
  5.     if ($dh = opendir($dir)) {
  6.         while (($file = readdir($dh)) !== false) {
  7.             print "<li>Файл: $file : тип: " . filetype($dir . $file) . "\n</li>";            
  8.                         }
  9.         closedir($dh);
  10.     }
  11. }
  12. ?>
  13.  
  14.  
  15. <FORM ACTION="edit.php" METHOD=POST>
  16. <INPUT TYPE="submit" value="редактрировать">
  17. </FORM>


и вот по нажатию это самой кнопки чтоб этот файл открылся для редактирования через edit.php:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $fp = fopen("$file", "a"); // Открываем файл в режиме записи
  3. $mytext = "Это строку необходимо нам записать\r\n"; // Исходная строка
  4. $test = fwrite($fp, $mytext); // Запись в файл
  5. if ($test) echo 'Данные в файл успешно занесены.';
  6. else echo 'Ошибка при записи в файл.';
  7. fclose($fp); //Закрытие файла
  8. ?>


конечная цель чтоб это открылось в форме и по нажатию на кнопке закрылось и сохранилось.. Основы подучить бы мне не помешало, но времени совсем в обрез, направьте меня в нужное русло.

(Отредактировано автором: 13 Июня, 2011 - 23:51:09)

 
 Top
DeepVarvar Супермодератор
Отправлено: 14 Июня, 2011 - 00:17:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




 
 Top
Prokofe
Отправлено: 14 Июня, 2011 - 08:43:07
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Ну спасибо конечно, но у меня проблема с реализацией задуманного, и не совсем то что я ожидал увидеть..
 
 Top
Мелкий Супермодератор
Отправлено: 14 Июня, 2011 - 09:14:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Prokofe пишет:
конечная цель чтоб это открылось в форме и по нажатию на кнопке закрылось и сохранилось..

Алгоритм:
прочитать файл, при отправке с формы перезаписать файл.
А-ля:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. $filename = 'file';
  3. if (isset($_POST['edit'])) {
  4.    file_put_contents($filename,$_POST['edit']);
  5.    }
  6. ?>
  7. <form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
  8. <textarea name="edit"><?=file_get_contents($filename)?></textarea><input type="submit" value="сохранить">
  9. </form>


Prokofe пишет:
и вот по нажатию это самой кнопки чтоб этот файл открылся

Какой файл?


-----
PostgreSQL DBA
 
 Top
White
Отправлено: 14 Июня, 2011 - 11:06:44
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




Приблизительно так

Вывод списка файлов:
PHP:
скопировать код в буфер обмена
  1.  
  2. <FORM ACTION="edit.php" METHOD=POST>
  3.  
  4. <?PHP
  5. $dir = "../pages/";
  6. // Открыть заведомо существующий каталог и начать считывать его содержимое
  7.  
  8. if (is_dir($dir)) {
  9.   foreach(glob($dir.'*' as $obj) {
  10.     print "<li><input type=radio name=filename value=".$obj."> ";
  11.     print "Файл: $obj : тип: " . filetype($obj) . "\n</li>";
  12.   }
  13. }
  14. ?>
  15.  
  16. <INPUT TYPE="submit" value="редактрировать">
  17. </FORM>
  18.  


'edit.php':

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.     $file = file($_POST['filename']); // Читаем файл построчно
  4.     echo '<form action="save.php" method="post"><textarea name=fileentry>';
  5.     foreach($file as $value) {
  6.         echo $value."\r\n";
  7.     }
  8.     echo '</textarea><input type=hidden name=filename value='.$_POST['filename'].'><INPUT TYPE="submit" value="Save"></form>';
  9. ?>
  10.  


'save.php':
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $fp = fopen($_POST['filename'], 'w');
  4. fwrite($fp, $_POST['fileentry']);
  5. fclose($fp);
  6. ?>
  7.  

(Добавление)
Цитата:
и по нажатию на кнопке закрылось и сохранилось


здесь как минимум 3 скрипта:

1)Выбор файла и отправка имени второму
2)Редактирование текста файла и отправка имени и текста третьему
3)Сохранение файла и перенаправление назад на первый.

P.S. Если хочешь "интерактивный" редактор пользуй AJAX(хотя посредствами чистого HTML это тоже реализуемо как в примере выше.

(Отредактировано автором: 14 Июня, 2011 - 11:19:51)



-----
if(time()>1356048000) die();
 
 Top
Prokofe
Отправлено: 14 Июня, 2011 - 13:52:51
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Так, вот выше описанный вариант весьма близок к моей задумке. Правда ошибку выдает пока не понимаю почему:
Цитата:
Parse error: syntax error, unexpected T_AS in W:\html\cms\www\admin\index.php on line 10


а по поводу интерактивного редактора, есть идея прицепить tinyMCE
 
 Top
Prokofe
Отправлено: 14 Июня, 2011 - 16:51:46
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Так как быть с ошибкой весь мозг уже разломал
 
 Top
Мелкий Супермодератор
Отправлено: 14 Июня, 2011 - 17:09:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Prokofe, покажите W:\html\cms\www\admin\index.php , например, 7-13 строки.


-----
PostgreSQL DBA
 
 Top
Prokofe
Отправлено: 14 Июня, 2011 - 17:28:07
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Код взят и выше указанного поста

PHP:
скопировать код в буфер обмена
  1.  
  2. <FORM ACTION="edit.php" METHOD=POST>
  3.  
  4. <?PHP
  5. $dir = "../pages/";
  6. // Открыть заведомо существующий каталог и начать считывать его содержимое
  7.  
  8. if (is_dir($dir)) {
  9.   foreach(glob($dir.'*' as $obj) {
  10.     print "<li><input type=radio name=filename value=".$obj."> ";
  11.     print "Файл: $obj : тип: " . filetype($obj) . "\n</li>";
  12.   }
  13. }
  14. ?>
  15.  
  16. <INPUT TYPE="submit" value="редактрировать">
  17. </FORM>
  18.  
 
 Top
White
Отправлено: 14 Июня, 2011 - 17:36:34
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




Цитата:
Parse error: syntax error, unexpected T_AS in W:\html\cms\www\admin\index.php on line 10


сорри, скобку забыл

CODE (htmlphp):
скопировать код в буфер обмена
  1. foreach(glob($dir.'*') as $obj) {


Цитата:
а по поводу интерактивного редактора, есть идея прицепить tinyMCE


Для редактирования исходников? Это WYSIWYG редактор, для html кода, здесь он не помощник. Лучше попробуй EditArea.

(Отредактировано автором: 14 Июня, 2011 - 21:26:57)



-----
if(time()>1356048000) die();
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB