Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak usunąć ze stringu wszystko co znajduje się między <? a ?>
Forum PHP.pl > Forum > Przedszkole
sadistic_son
Mam taki skrypcik:
  1. $file=file_get_contents('plik.php');
  2. echo $file;
Jednak zależy mi aby wyświetlić tylko to co nie jest w php, czyli należy wywalić wszystko co jest pomiędzy znacznikami <? ?>
Pomoże ktoś w sformułowaniu wyrażenia regularnego? Bo nie jestem w tym za dobry.
Crozin
  1. preg_replace('#<\?(.*?)\?>#s', '', $file);

...w sumie powinienem poprosić byś pokazał swoje, ale już napisałem, to...
pyro
erix, strip_tags usuwa zarówno znaczniki PHP jak i znaczniki HTML. Co prawda autor nie powiedział, że NIE MA usuwać tagów HTML, ale podejrzewam, że będą potrzebne smile.gif
Pawel_W
Cytat(sadistic_son @ 18.09.2009, 19:57:46 ) *
Mam taki skrypcik:
  1. $file=file_get_contents('plik.php');
  2. echo $file;
Jednak zależy mi aby wyświetlić tylko to co nie jest w php, czyli należy wywalić wszystko co jest pomiędzy znacznikami <? ?>
Pomoże ktoś w sformułowaniu wyrażenia regularnego? Bo nie jestem w tym za dobry.

file_get_contents pobierze ci już wykonany kod, dlatego nie będzie zawierał znaczników <?php ?> ----> nie da się ich usunąć winksmiley.jpg
sadistic_son
niestety to nie działa. Zawartość teog pliku ma sie znalezc w textarea i niestety robia sie krzaczki. Całość wygląda tak:
  1. //to jest zawartość pliku main.php
  2. //Ma on za zadanie wrzucić samego siebie do textarea ale tylko to co w htmlu
  3. if(isset($_SESSION['logged']) && isset($_GET['edit'])){
  4. $main_content_file=file_get_contents('main.php');
  5. $main_content_file=preg_replace('#<\?(.*?)\?>#s', '', $main_content_file);
  6. echo'<form action="main.php" method="post" >
  7. Edycja zawartości strony
  8. Treść strony:
  9. <textarea name="main_content" >'.$main_content_file.'</textarea><br />
  10. <input type="submit" name="edit_content" value="Edytuj" /><br />
  11. </form>
  12. ';
  13. }
  14.  
  15. ?>
  16. <div>
  17. Ciągdalszy htmla
  18. </div>
Chodzi mi to to aby w textarea pokazało sie tylko <div>Ciągdalszy htmla</div>. Bo w chwili obecnej wyświetla się kod php a do tego nawet poza textara.

Cytat(Pawel_W @ 18.09.2009, 20:42:34 ) *
file_get_contents pobierze ci już wykonany kod, dlatego nie będzie zawierał znaczników <?php ?> ----> nie da się ich usunąć winksmiley.jpg
To jakiej funkcji uzyc? file() nie chce bo nie potrzebuje tablicy.
pyro
Cytat(Pawel_W @ 18.09.2009, 20:42:34 ) *
file_get_contents pobierze ci już wykonany kod, dlatego nie będzie zawierał znaczników <?php ?> ----> nie da się ich usunąć winksmiley.jpg


Takie bzdury pleciesz, że aż słabo.

@sadistic_son, musisz także przed wyświetleniem w textarea użyć htmlspecialchars jesli są tam jakies znaczniki HTML.
erix
Cytat
erix, strip_tags usuwa zarówno znaczniki PHP jak i znaczniki HTML

Zobacz uważnie, do czego zalinkowałem; zwłaszcza zwróć uwagę na hash. tongue.gif
Pawel_W
miałem ostatnio taki sam problem, był plik.php:
  1. <?php exit; ?>
  2. dane które mnie interesują ;)

no i nie miałem za bardzo jak się do nich dobrać, dużo czytałem na ten temat i nie znalazłem odpowiedzi, jedyne czego się dowiedziałem, to że chyba sqlite używa takiego formatu przechowywania danych ;o

jeżeli ktoś miałby pomysł jak w pliku php wyciągnąć "dane, które mnie interesują" to byłbym bardzo wdzięczny winksmiley.jpg
pyro
Cytat(erix @ 18.09.2009, 20:48:30 ) *
Zobacz uważnie, do czego zalinkowałem; zwłaszcza zwróć uwagę na hash. tongue.gif


Rzeczywiście, nie zwróciłem uwagi na kotwicę.

@Pawel_W, dobrze by było przeczytać temat, w którym się teraz znajdujesz. Nieprawidłowe wyrażenie regularne? Popraw je. Nie wiesz jak poprawić wyrażenie? Skorzystaj z linka @erix'a
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.