Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: drugie parsowanie kodu
Forum PHP.pl > Forum > PHP
Koshin
czy istnieje mozliwosc, sposob, trick, aby skrypt poprawnie zostal przeczytany przez serwer w takiej postaci:

[php:1:47a3442277]<?php
$z0="world";
$z1 = "echo "hello $z0" ";

echo $z1;

?>[/php:1:47a3442277]

i żeby wynikiem tego byl napis na ekranie:
hello world

chodzi glownie o to aby tekst umieszczony w zmiennej byl rowniez parsowany.
adwol
Cytat
chodzi glownie o to aby tekst umieszczony w zmiennej byl rowniez parsowany.

[php:1:ece8328e36]<?php
eval($z1);
?>[/php:1:ece8328e36]
Koshin
i o to chyba chodzilo mi... teraz tylko troche testow z bardziej skomplikowanym kodem ... i ... moze cos z tego wyjdzie smile.gif
Koshin
niestety glebsze testy przyniosly rozczarowanie...

eval() nie radzi sobie nawet z petla.... ktora 3 wyswietla napis na ekranie... buuu ...
rzseattle
to pokaz ta petle ktora dales do eval - pewnie da sie to rozwiazac winny sosob
DeyV
Eval radzi sobie z kazdym kodem, który jest dobrze przygotowany. Jak to rozpoznać? Zamienić Eval na echo, i sprawdzić, czy to co widzimy na ekranie jest w 100% poprawynym kodem php, (moze go sobie nawet przetestowac. Jesli jest dobry - to eval na pewno sobie z nim poradzi. Jest to całkiem przydatne, szczególnie przy robieniu prostych systemów temlates. (choć nie należy do bezpiecznych rozwiazań)
KaMeLeOn
Ja tylko dodam, że engine phpBB dziala na funkcji eval()...
Jak widać radzi sobie nawet nieźle.
Koshin
czyli kazdy kod php, ktory dziala samodzielnie, mozna uzyc w funckji eval() oczywiscie z zachowaniem odpodniego ukladu " questionmark.gifquestionmark.gif
adwol
Cytat
czyli kazdy kod php, ktory dziala samodzielnie, mozna uzyc w funckji eval() oczywiscie z zachowaniem odpodniego ukladu " questionmark.gifquestionmark.gif

Tak, z tym że musi to być kompletna instrukcja (lub ich większa ilość), włącznie z tym że musi być zakończona średnikiem.
Np. takie coś oczywiście nie zadziała:
[php:1:756b0af87a]<?php
eval('for ($i = 1; $i < 10; $i++)');
print "$in";
?>[/php:1:756b0af87a]
ale takie coś już tak:
[php:1:756b0af87a]<?php
eval('for ($i = 1; $i < 10; $i++) print "$in";');
?>[/php:1:756b0af87a]
eval nie działa tak jak preprocesor w C.
Koshin
petla zadzialala tak jak powinna, jedynie co to musialem dac przed kazdy $ uzyty w eval. po takiej reedycji kodu zadzialalo bezblednie.
dzieki jeszcze raz za pomoc.
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.