Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]parsowanie php w echo
Forum PHP.pl > Forum > Przedszkole
gawar
Witam,
Mam napisany generator w php który tworzy mi pliki z rozszerzeniem php. Wszystko działa dobrze dopóki nie chce dopisać w nowo tworzonych plikach z rozszerzeniem php kodu php. Wtedy ten kod php parsuje mi się już na poziomie tworzenia tych plików, a nie tak jakbym chciał, czyli "włożenia" kodu php do nowo utworzonych plików. Jest jakiś sposób żeby to obejść? Czy są jakieś znaczniki, żeby ten kod przekleił się bez parsowania i był parsowany dopiero po uruchomieniu utworzonego pliku?
kao3991
zgaduję że ładujesz te pliki przez include/require? spróbuj wczytać przez file_get_contents, wtedy kod się nie wykona.
Aqu
Jeżeli ten kod trzymasz w cudzysłowie - "twój $zmienna kod", to zamień po prostu na 'twój $zmienna kod', albo dodaj slashe przed zmiennymi.
Pyton_000
albo

  1. $zmienna = 'EOF'<<<
  2. kod echo $php
  3. EOF;
gawar
Masowo generuje pliki za pomocą fopen, fwrite jako, że dane są co obrót pętli dodawane do utworzonego pliku.

Problem pojawia się gdy chce dodać ten kod w php
  1. <?php
  2. $znacznik_php='
  3. if (isset($_GET['id'])) {
  4.  
  5. $id = $_GET['id'];
  6.  
  7. echo "<br/>'.$id.'";
  8.  
  9. } else {
  10.  
  11. echo "brak id";
  12.  
  13. }
  14. ?>';
  15. fwrite($plik, $znacznik_php);

Wyrzuca syntax error w pierwszej linijce przy 'id' - próbowałem to zamieniać na cudzysłowy, czy też .' ale nic nie chce działać
==================

Ok poradziłem sobie. Pomogły \ przed apostrofem. dzięki za pomoc. Ale pojawił się kolejny problem jak dołączyć do tego jeszcze kod js i do niego przekazać zmieną z php?
  1. <?php
  2. $znacznik_php='
  3. if (isset($_GET[\'id\'])) {
  4.  
  5. $id_miejsce = $_GET[\'id\'];
  6.  
  7. echo "<br/>$id_miejsce";
  8.  
  9. } else {
  10.  
  11. echo "brak id";
  12.  
  13. }
  14. ?>
  15. <script type="text/javascript">
  16.  
  17. function pokazOkno()
  18. {
  19.  
  20. var zmien = document.getElementById(\'id<? echo $id ?>\').style.fill="green";
  21.  
  22. }
  23. window.onload = function()
  24. {
  25. pokazOkno();
  26. }
  27.  
  28. </script>';
  29. fwrite($plik, $znacznik_php);


Powyższe dwie funkcje js niestety nie działają.
phpion
Tak jak robiłeś w pierwszej wersji kilka linijek wyżej:
  1. var zmien = document.getElementById(\'id'.$id.'\').style.fill="green";
Pyton_000
  1. $zmienna = <<<'EOL'
  2. if (isset($_GET['id'])) {
  3.  
  4. $id_miejsce = $_GET['id'];
  5.  
  6. echo "<br/>$id_miejsce";
  7.  
  8. } else {
  9.  
  10. echo "brak id";
  11.  
  12. }
  13. ?>
  14. <script type="text/javascript">
  15.  
  16. function pokazOkno()
  17. {
  18.  
  19. var zmien = document.getElementById('id<? echo $id ?>').style.fill="green";
  20.  
  21. }
  22. window.onload = function()
  23. {
  24. pokazOkno();
  25. }
  26.  
  27. </script>
  28. EOL;
gawar
phpion tak nie działa:(


Pyton_000

  1. ('id<? echo $id ?>')
nie parsuje tego na poziomie wygenerowanych plików i w podglądzie kodu w przeglądarce wygląda to tak:

var zmien = document.getElementById('id<? echo $id ?>').style.fill="green";
Pyton_000
To zdecyduj się w końcu co chcesz osiągnąć, czy parsować czy nie...

Wstaw sobie zmienne typu #ID# i rób str_replace
gawar
Nie chce parsować w czasie generowania plików. A jak już pliki mam utworzone i je wywołuje podając ściezkę do nich to jak najbardziej chce parsować i w przypadku poniższego fragmentu kodu to działa
  1. if (isset($_GET['id'])) {
  2.  
  3. $id_miejsce = $_GET['id'];
  4.  
  5. echo "<br/>$id_miejsce";
  6.  
  7. } else {
  8.  
  9. echo "brak id";
  10.  
  11. }
  12. ?>


ale już w przypadku tego nie działa:(

  1. <script type="text/javascript">
  2.  
  3. function pokazOkno()
  4. {
  5.  
  6. var zmien = document.getElementById('id<? echo $id ?>').style.fill="green";
  7.  
  8. }
  9. window.onload = function()
  10. {
  11. pokazOkno();
  12. }
  13.  
  14. </script>
Pyton_000
Czy Ty przypadkiem nie zapisujesz tego jako .js ? Bo jeżeli tak to niby czemu miałoby Ci to parsować?
gawar
zapisuje to jako plik php
Pyton_000
zamień <? na <?php
gawar
dzięki, w tym był problem
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.