Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Edytor kodu online
Forum PHP.pl > Forum > Przedszkole
strife
Witam,

Mam pytanie czy da się zrobić taki skrypt który z poziomu strony będzie edytował kod źródłowy plików, czy jest coś takiego możliwe, jeśli tak to proszę o jakąś podpowiedź np. o coś takiego żeby w formularzu tekstowym pojawiało mi się źródło pliku, a po edycji i naciśnięciu przycisku jest zapisywana...

Proszę o pomoc!
Liko
Oczywiscie. Dlaczego nie ? Musisz tylko zaprzyjaźnić się z funkcjami obsługującymi operacje na plikach. Napewno wykorzystasz: fopen" title="Zobacz w manualu PHP" target="_manual, fread" title="Zobacz w manualu PHP" target="_manual, fwrite" title="Zobacz w manualu PHP" target="_manual, fclose" title="Zobacz w manualu PHP" target="_manual, może się też przydać: file_get_contents" title="Zobacz w manualu PHP" target="_manual, wordwrap" title="Zobacz w manualu PHP" target="_manual i kilka innych. Spróbóję Ci nakreślić działanie tekiego edytora.
  • Otwierasz plik -> fopen
  • Czytasz dane z pliku -> file, fread, file_get_contents
  • Wypluwasz zawartość do textarea -> chyba wiesz jak
  • Poźniej po wprowadzeniu zmian w treści zapisujesz -> fwrite
  • Zamykasz plik -> fclose
Oczywiście to jest ztrasznie ogólny zarys takiego edytora. Możesz dodać listowanie plików i folderów żebyś miał wybór plików, kolorowanie składni, itp. Wystarczy pomyśleć jak takie coś ma wygladać i wiziąść się do pracy z pomocą manuala.

Służe pomocą.
strife
Bardzo wam dziękuje jednak nadal mam problemy - jestem zielony dość jeśli chodzi o coś poważniejszego w php, ale się uczę...
  1. <?
  2. $filename = &#092;"plik.txt\";
  3. $handle = fopen($filename, &#092;"r\");
  4. $contents = fread($handle, filesize($filename));
  5. ?>


Zrobiłem coś takiego wiem, że pewnie żeby zawartość pliku wyświetlała się w okienku textarea potrzeba <form> <input> ale niestety nie wiem jak to skonfigurować aby właśnie była wyświetlana zawartość tego... Proszę was o jeszcze jedną rzecz...

pozdrawiam!
M4chu
  1. <?php
  2. $filename = 'plik.txt';
  3. $content = file_get_contents( $filename );
  4. ?>

  1. <textarea><?php echo $content;?></textarea>
bela
@M4chu tylko nie zapominaj ze file_*_contents dziala tylko w php5
hwao
Cytat(bela_666 @ 2004-12-15 23:52:51)
@M4chu tylko nie zapominaj ze file_*_contents dziala tylko w php5

ke?:-)

Cytat
file_get_contents

(php 4 >= 4.3.0, php 5)
file_get_contents -- Reads entire file into a string
Description
string file_get_contents ( string filename [, bool use_include_path [, resource context]])
bela
wyprowadźcie mnie z błędu
czemu w manualu jest napisane
Cytat
Notatka: Wsparcie dla kontekstów zostało dodane w php 5.0.0.
hwao
ostani parametr?
Cytat
string file_get_contents ( string filename [, bool use_include_path [, resource context]])
bela
a tak sorry, moje niedopatrzenie dry.gif za to file_put_contents dziala tylko pod php5 tongue.gif
strife
Wszystko śmiga. dziękuje smile.gif
M4chu
Przy okazji tematu: jakies pomysly na umieszczanie znacznikow htmla zeby np kolorowac skladnie? W textarea chyba sie nie da, bo bedzie wyswietlony znacznik zamiast jego funkcji.

pozdro
strife
Cytat(M4chu @ 2004-12-16 16:57:26)
Przy okazji tematu: jakies pomysly na umieszczanie znacznikow htmla zeby np kolorowac skladnie? W textarea chyba sie nie da, bo bedzie wyswietlony znacznik zamiast jego funkcji.

pozdro

Zrobiłem sobie ten skrypcik smile.gif smile.gif A właśnie jak zrobić kolorowanie składni?questionmark.gif i jeszcze drugie pytanie, czy taki skrypt można nazwać CMS'em?
bela
jeżeli odpowiada za zmiane calej tresci strony to raczej tak winksmiley.jpg
zobacz jak to wygląda w eZpublish
hwao
Cytat(scarface @ 2004-12-16 22:23:32)
Cytat(M4chu @ 2004-12-16 16:57:26)
Przy okazji tematu: jakies pomysly na umieszczanie znacznikow htmla zeby np kolorowac skladnie? W textarea chyba sie nie da,  bo bedzie wyswietlony znacznik zamiast jego funkcji.

pozdro

Zrobiłem sobie ten skrypcik smile.gif smile.gif A właśnie jak zrobić kolorowanie składni?questionmark.gif i jeszcze drugie pytanie, czy taki skrypt można nazwać CMS'em?

Kolorowanie skladni php mozesz zaczerpnac z samego php(ma do tego odpowiednia funkcje.. )

A co do innych jezykow to musisz ja sam napisac
M4chu
Wszystko ladnie ale (jak juz wczesniej pisalem) w textarea nie wyswietla htmla, wyswietla znaczniki, przynajmniej w takiej formie:
  1. <?php
  2.  
  3. echo '<textarea>' . highlight_file( $source, true ) . '</textarea>';
  4.  
  5. ?>
hwao
string highlight_file( $source, true )

Test ten string przerob odpowiednio (standaru htmlarea) i bedziesz mial wszytko ładnie :-)

Wyrazenia reg... moze uda sie str replace :-)
M4chu
o wlasnie o cos takiego mi chodzilo, sprobujemy smile.gif
cinekz
jeśli chodzi ci o skrypt gdzie będzie można edytować online pliki na serwerze to wejdź na Intol.info i tam jest skrypt totalnej administracji.
strife
Witam ponownie...

Narknołem się na kolejny problem, mianowicie po edycji pliku takiego:

  1. <?
  2.  
  3. If ($_GET['id'] == '') {
  4. include('main.php');
  5. }
  6. If ($_GET['id'] == &#092;"s1\") {
  7. include('001.php');
  8. }
  9.  
  10.  
  11. ?>


Zmienia się on na
  1. <?
  2.  
  3. If ($_GET[&#092;'id'] == '') {
  4. include(&#092;'main.php');
  5. }
  6. If ($_GET[&#092;'id'] == \"s1\") {
  7. include(&#092;'001.php');
  8. }
  9.  
  10.  
  11. ?>


I moje pytanie brzmi, czy wiecie jak zlikwidować te \ questionmark.gif?

POzdrawiam!
cim
nie jestem pewny czy w tym wypadku będzie to na miejscu - stripslashes
albo może 2x 'str_replace' - raz z apostrofem a raz z cudzysłowem;
albo jeszcze zabawa z wyrażeniami regularnymi...
strife
Cytat(cim @ 2004-12-17 23:07:16)
nie jestem pewny czy w tym wypadku będzie to na miejscu - stripslashes
albo może 2x 'str_replace' - raz z apostrofem a raz z cudzysłowem;
albo jeszcze zabawa z wyrażeniami regularnymi...

Muszę zacząć częściej korzystać z manuala. Dzięki.
Kshyhoo
Gdzieś na forum jest podobny problem a rozwiązano to tak:
  1. <?php
  2. if(!$_POST['tekst']){
  3. ?>
  4. <form action='tekst2.php' method='post'>
  5. <textarea name='tekst' rows=\"25\" cols=\"66\">
  6. <?php
  7. include('dane.txt');
  8. ?>
  9. </textarea>
  10. <input type='submit' value='Zapisz'>
  11. </form>
  12. <?php
  13. }else{
  14. $file = fopen('dane.txt', 'w');
  15. fwrite($file, $_POST['tekst']);
  16. fclose($file);
  17. }
  18. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.