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.SU

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


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

> Без описания
Snic
Отправлено: 27 Ноября, 2007 - 06:59:36
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Окт. 2007  


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




Как открыть файл для редактирования?

делаю так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $files = fopen('../templates/default.html', 'r');
  3. echo "<textarea name='template' cols='100%' rows='35'>".$files."</textarea>";
  4.  


в textarea отображается не содержание файла а надпись "Resource id #6" откуда это почему не текст файла?

делаю по другому:
PHP:
скопировать код в буфер обмена
  1.  
  2. $files = readfile('../templates/default.html');
  3. echo "<textarea name='template' cols='100%' rows='35'>".$files."</textarea>";
  4.  


в textarea отображается опять же не содержание файла такого плана:
PHP:
скопировать код в буфер обмена
  1.  
  2. <head>
  3.     <title>Панель администрации - Работа с шаблонами</title>
  4.     <meta http-equiv="content-type" content="text/html; charset=windows-1251"/>
  5.     <meta name="author" content="Snic aka Чуйков А.В. (newbred@yandex.ru)"/>
  6.     <META HTTP-EQUIV="Pragma" CONTENT="no-cache"/>
  7.     <link href="style.css" rel="stylesheet" type="text/css"/>
  8.   </head>
  9.  
  10. <body>
  11.  
  12. НУ и так далее весь код ......
  13.  


а уже прочитанную html страницу как сделать так чтоб он открывал сам текст файла чтоб можно было править html шаблон.


-----
Лень - двигатель прогресса, имхо Улыбка
Работаю над проектами в сфере информационного сайтостроения.
 
 Top
T-Mon
Отправлено: 27 Ноября, 2007 - 08:07:21
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2007  


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




PHP:
скопировать код в буфер обмена
  1.  $file=fopen('temp.html',"r+");
  2.  $text=fread($file,10000);
  3.  echo "<textarea name='template' cols='100%' rows='35'>".htmlspecialchars($text)."</textarea>";

Что-то такое нашкрябал, но я не знаю, как правильно зациклить это чтение, ибо оно не гарантирует полный обход файла.\n\n(Добавление)
Функция readfile считает кол-во символов в файле, то есть сколько он занял байт.\n\n(Добавление)
Вот еще написал... читает корректно, но с записью что-то не так.
Подскажете, что подправить?
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.  $file=fopen('temp.html',"r+") or die("File not exists");
  4.  $temp=isset($_POST['temp'])?$_POST['temp']:'';
  5.  $edit=isset($_POST['edit'])?$_POST['edit']:'';
  6.  if ($edit=='Edit')
  7.  {
  8.         fputs($file,$temp);
  9.  }
  10.  $count=readfile('temp.html');
  11.  $temp=fread($file,$count);
  12.  echo "<form method='post'>";
  13.  echo "<textarea name='temp' cols='100%' rows='35'>".htmlspecialchars($temp)."</textarea><br>";
  14.  echo "<input type='submit' name='edit' value='Edit'>";
  15.  echo "</form>";
  16.  fclose($file);
  17. ?>
 
 Top
EuGen Администратор
Отправлено: 27 Ноября, 2007 - 12:19:45
Post Id


Профессионал


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


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




Ну Вы даете..
бегом читать матчасть((*
делается с помощью file_get_contents.
Читайте:

http://php.su/functions/?cat=filesystem


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
T-Mon
Отправлено: 27 Ноября, 2007 - 14:42:52
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2007  


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




Вот так вроде бы работает, никаких глупостей не совершил?
PHP:
скопировать код в буфер обмена
  1.  $file='temp.html';
  2.  $temp=isset($_POST['temp'])?$_POST['temp']:'';
  3.  $edit=isset($_POST['edit'])?$_POST['edit']:'';
  4.  if ($edit=='Edit')
  5.  {
  6.         file_put_contents($file,$temp);
  7.  }
  8.  $temp=file_get_contents($file);
  9.  echo "<form method='post'>";
  10.  echo "<textarea name='temp' cols='100%' rows='35'>".htmlspecialchars($temp)."</textarea><br>";
  11.  echo "<input type='submit' name='edit' value='Edit'>";
  12.  echo "</form>";


Кстати, для этих функций не нужно открывать и закрывать файл почему-то... А какой подобной функцией не переписать, а дописать в конец файла?
 
 Top
Snic
Отправлено: 27 Ноября, 2007 - 15:37:39
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Окт. 2007  


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




У меня чтото ошибку бросает и все:
Fatal error: Call to undefined function: file_put_contents() in z:\home\cms\www\admin\templates.php on line 68

я незнаю как у вас работает у меня этот код нет


-----
Лень - двигатель прогресса, имхо Улыбка
Работаю над проектами в сфере информационного сайтостроения.
 
 Top
EuGen Администратор
Отправлено: 27 Ноября, 2007 - 15:42:46
Post Id


Профессионал


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


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




Функция file_put_contents включена в PHP начиная с 5-й версии. А вот file_get_contents - начиная с 4.3. Так что вполне возможно, что первая у Вас не будет работать при том, что работает вторая.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Snic
Отправлено: 27 Ноября, 2007 - 15:46:31
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Окт. 2007  


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




EuGen
Спасибки пойду денвер качать с 5 php и отпишусь после.


-----
Лень - двигатель прогресса, имхо Улыбка
Работаю над проектами в сфере информационного сайтостроения.
 
 Top
T-Mon
Отправлено: 27 Ноября, 2007 - 15:48:55
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2007  


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




А есть ли функция, что-то типа file_append_contents для добавления информации в конец файла?
 
 Top
Snic
Отправлено: 27 Ноября, 2007 - 17:47:19
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Окт. 2007  


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




Все гудд с php5
вот линк на денвер с php5 кому надо качаем
_hxxp://www[dot]denwer[dot]ru/dis/Base_PHP5/Base[dot][dot][dot][dot]16_pma2[dot]6[dot]1[dot]exe

(Добавление)
вот дурья голова работает то работает а проблема есть:
Проблема теперь в том что он сохраняет файл вот так вот кусок кода:

<!-- Шапка - (начало) -->
<div id=\\\"header\\\"><div id=\\\"header-content\\\">

<h1 id=\\\"logo\\\">{sitename}</h1>
<h2 id=\\\"slogan\\\">{siteslogan}</h2>

<div class=\\\"searchform\\\">
<form action=\\\"#\\\">
<p>
<input name=\\\"search_query\\\" class=\\\"textbox\\\" type=\\\"text\\\" />
<input name=\\\"search\\\" class=\\\"button\\\" value=\\\"Поиск\\\" type=\\\"submit\\\" />
</p>
</form>
</div>

<!-- Меню в шапке - (начало) -->
<ul>
<li><a href=\\\"/\\\">Главная</a></li>
<li><a href=\\\"index.html\\\">О компании</a></li>


-----
Лень - двигатель прогресса, имхо Улыбка
Работаю над проектами в сфере информационного сайтостроения.
 
 Top
EuGen Администратор
Отправлено: 27 Ноября, 2007 - 18:11:54
Post Id


Профессионал


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. function file_append_contents($filename, $data)
  3. {
  4.    if (!$f=fopen($filename,"a+"))
  5.       return false;
  6.    $result=fwrite($f, $data);
  7.    fclose($f);
  8.    return $result;//возвращаем кол-во записанных байт или FALSE
  9. }
  10.  

Радуйтесь, пока я добрый (((*


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
T-Mon
Отправлено: 27 Ноября, 2007 - 18:45:16
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2007  


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




Я имел в виду встроенную функцию, спасибо)))\n\n(Добавление)
Snic, странно, у меня все правильно сохраняет.
 
 Top
EuGen Администратор
Отправлено: 27 Ноября, 2007 - 18:53:43
Post Id


Профессионал


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


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




Snic - а каково исходное содержание?((*


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Snic
Отправлено: 28 Ноября, 2007 - 20:10:46
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Окт. 2007  


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




разобрался с этими \\\ про это читать тут http://webmasterschool[dot]ru/articles/article8.php

вот весь код все переделал но теперь немогу разобраться с функцией function edit_t()
помогайте запускайте скрипт посмотрите и поймете мой замысел обьясните как сделаться с function edit_t() чтоб все работало

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3.  
  4.   if ( !isset( $_GET["action"] ) ) $_GET["action"] = "uploadtemplate";
  5.   $action = $_GET["action"];
  6.  
  7.   switch ( $action )
  8.   {
  9.       case "uploadtemplate":
  10.           upload_template(); break;
  11.       case "edittemplate":
  12.           edit_template(); break;
  13.       case "edit":
  14.           edit_t(); break;
  15.       default:
  16.          upload_template();
  17.   }
  18.  
  19.   function upload_template()
  20.   {
  21.      $path="../templates";
  22.      $fsize="100000";
  23.  
  24.     // Проверяем на существование папку $path
  25.  
  26.     if(!file_exists($path))
  27.     die("<b>Пожалуйста, создайте папку <font color=red>".$path."</font> и <a href=&#63;>повторите попытку загрузить файл</a>.</b>");
  28.  
  29.     // Выводим форму для загрузки файла.
  30.  
  31.     if(empty($_FILES['UserFile']['tmp_name']))
  32.     echo "<h1>Загрузить шаблон</h1><form method=post enctype=multipart/form-data>";
  33.     echo "<p>";
  34.     echo "<label>Выбераем файл:</label><br>";
  35.     echo "<input type=file name=upload><br><br>";
  36.     echo "<input type=submit value=Загрузить>";
  37.     echo "</p>";
  38.     echo "</form>";
  39.  
  40.      if ( !empty( $_FILES['upload']['name'] ) ) {
  41.     // получаем расширение загружаемого файла
  42.     $ext = strrchr( $_FILES['upload']['name'], "." );
  43.     if ( !$ext ) die('недопустимый формат файла');
  44.     // массив допустимых расширений
  45.     $extensions = array( ".html", ".htm" );
  46.     if ( !in_array( $ext, $extensions ) )
  47.       die('недопустимый формат файла');
  48.     if ( $_FILES['upload']['size'] > $fsize )
  49.       die('размер файла больше '.($fsize/1024).' Кб');
  50.     if( move_uploaded_file ($_FILES['upload']['tmp_name'],$path.chr(47).$_FILES['upload']['name']))
  51.       echo 'Файл успешно загружен';
  52.     else
  53.       echo 'Ошибка при загрузке файла';
  54.   }
  55.     echo "<a href='".$_SERVER['PHP_SELF']."?action=edittemplate'>Редактировать шаблон</a>";
  56.   }
  57.  
  58.   function edit_template()
  59.   {
  60.  
  61.      // селект шаблонов
  62.      $path="../templates";
  63.      echo "<br><h1>Редактировать шаблон</h1>";
  64.      echo "<form name='edit' action='".$_SERVER["PHP_SELF"]."?action=edit' method='POST'>";
  65.      echo "<label>Выбераем шаблон:</label><br>";
  66.      echo "<select name='template'>";
  67.      if ($handle = opendir($path)) {
  68.      while (false !== ($templatefile = readdir($handle))) {
  69.      if ($templatefile != "." && $templatefile != "..") {
  70.             echo "<option value='".$templatefile."'>".$templatefile."</option>";
  71.         }
  72.      }
  73.      closedir($handle);
  74.      echo "</select><br><br>";
  75.      }
  76.      echo "<input type='submit' value='Выбрать шаблон'>";
  77.      echo "</form>";
  78.   }
  79.  
  80.   function edit_t()
  81.   {
  82.      $path="../templates";
  83.      $template = $_POST['template'];
  84.      // открытый шаблон
  85.      $temp=isset($_POST['temp'])?$_POST['temp']:'';
  86.      $edit=isset($_POST['edit'])?$_POST['edit']:'';
  87.      $file="".$path."/".$template."";
  88.      if ($edit=='edit')
  89.      {
  90.            file_put_contents($file,$temp);
  91.      }
  92.      $temp=file_get_contents($file);
  93.      echo "<br><br><h1>Редактируем  шаблон (".$template."):</h1><br>";
  94.      echo "<form method='post'>";
  95.      echo "<textarea name='temp' cols='100%' rows='35'>".htmlspecialchars($temp)."</textarea><br><br>";
  96.      echo "<input type='submit' name='edit' value='Редактировать шаблон'>";
  97.      echo "</form>";
  98.  
  99.   }
  100.  
  101. ?>
  102.  


-----
Лень - двигатель прогресса, имхо Улыбка
Работаю над проектами в сфере информационного сайтостроения.
 
 Top
Snic
Отправлено: 29 Ноября, 2007 - 13:51:28
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Окт. 2007  


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




пробовал и поле сделать туда название файла шаблона определять а потом это поле использовать как название для файла сохранения и один фиг нечего чтото не срастается
а еще обидно то что я мелочей не замечаю наверное опять дело в мелочи а я не вижу а когда покажут даже позорно становится а эта мелочь сейчас на меня смотри и смеётся


-----
Лень - двигатель прогресса, имхо Улыбка
Работаю над проектами в сфере информационного сайтостроения.
 
 Top
T-Mon
Отправлено: 29 Ноября, 2007 - 15:22:51
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2007  


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




Может это?
if ($edit=='edit')
value='Редактировать шаблон'
То есть $_POST['edit'] принимает значение только 'Редактировать шаблон'...
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB