Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czy jest możliwe includowanie stringa?
LamaMASTER
post 1.05.2006, 15:59:07
Post #1





Grupa: Zarejestrowani
Postów: 160
Pomógł: 0
Dołączył: 27.03.2006

Ostrzeżenie: (0%)
-----


Witam,
Przykładowo jest sobie plik.php i w nim:
Kod
<?
$kupa = 'kupę';
?>
Jaś sobie napierdział i zrobił <?=$kupa?>. Co teraz będzie z biednym Jasiem?
<? include('stopka.php'); ?>

Dodając w index.php
  1. <?
  2. include('plik.php');
  3. ?>

jak każdy wie wynik będzie taki:

Jaś sobie napierdział i zrobił kupę. Co teraz będzie z biednym Jasiem?
[zawartość pliku stopka.php]

Teraz mam taki problem, przypuśćmy mam:
  1. $string = '<?
  2. $kupa = "kupę";
  3. ?>
  4. Jaś sobie napierdział i zrobił <?=$kupa?>. Co teraz będzie z biednym Jasiem?
  5. <? include("stopka.php"); ?>';

Co teraz zrobić ze zmienną $string, żeby efekt był taki sam jak przy wczytaniu pliku?
Jest gdzieś może kod źródłowy funkcji include żeby podpatrzeć jak ona to robi?

Ten post edytował LamaMASTER 1.05.2006, 16:09:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
matrach
post 1.05.2006, 16:06:14
Post #2





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 17.04.2006

Ostrzeżenie: (0%)
-----


eval()
I popraw te cudzysłowy bo przy evalowaniu wywali błeda

Ten post edytował matrach 1.05.2006, 16:06:44
Go to the top of the page
+Quote Post
LamaMASTER
post 1.05.2006, 16:08:58
Post #3





Grupa: Zarejestrowani
Postów: 160
Pomógł: 0
Dołączył: 27.03.2006

Ostrzeżenie: (0%)
-----


Eval znam, ale i tak wywali błęda. Wiesz czemu? Bo co będzie jeżeli $string będzie wyglądać tak:
  1. $string = '<div align="center">Coś tam <?=$kupa?> <? include("plik.php"); ?>';

Eval parsuje tylko czysty kod php, np. jak mam samo eval('echo $kupa');, ale nie razem z tagami, tekstem i tagami php... gdyby to było tak proste to nie pisałbym tego tematu winksmiley.jpg
Go to the top of the page
+Quote Post
matrach
post 1.05.2006, 16:11:03
Post #4





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 17.04.2006

Ostrzeżenie: (0%)
-----


Cytat(LamaMASTER @ 2006-05-01 17:08:58)
Eval parsuje tylko czysty kod php, np. jak mam samo eval('echo $kupa');, ale nie razem z tagami, tekstem i tagami php... gdyby to było tak proste to nie pisałbym tego tematu winksmiley.jpg

Wystarczy pomyśleć....
  1. eval('?>'.$string.'<?');


Gdyby tak nie można było zrobić nie pisałbym poprzedniej odpowiedzi.....

Ten post edytował matrach 1.05.2006, 16:13:15
Go to the top of the page
+Quote Post
LamaMASTER
post 1.05.2006, 16:16:17
Post #5





Grupa: Zarejestrowani
Postów: 160
Pomógł: 0
Dołączył: 27.03.2006

Ostrzeżenie: (0%)
-----


No i co? Wyskakują nadal parse errory. Uwierz mi - próbowałem takich kombinacji z evalem tysiące. Nawet robiłem pętlę, która używała eval na wszystkim między <? i ?> a resztę pozostawiała bez zmian, ale to nie ma sensu. Popatrz jaki jest wynik tego co podałeś:

  1. <?
  2. eval('?> <div align="center">Coś tam <?=$kupa?> <? include("plik.php"); ?> <?')

i dlaczego tu nie ma być błędów? Pierwszy znak kończy kod php, ale to i tak nie działa w tej funkcji
Go to the top of the page
+Quote Post
matrach
post 1.05.2006, 16:31:30
Post #6





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 17.04.2006

Ostrzeżenie: (0%)
-----


To zobacz co ci da to:
  1. <?
  2. $cos = 25;
  3. $evaluj = 'Buhahahaha <b>$cos</b> to <?=$cos?>';
  4. eval ('?>' . $evaluj . '<?');
  5. ?>


A w dodatku ponady przez ciebie kod działa
Jeśli ci to nie działa eval to zmień wersje php
-------------------
I poczytaj komenty do evala
ten i ten poniżej

Ten post edytował matrach 1.05.2006, 16:37:54
Go to the top of the page
+Quote Post
LamaMASTER
post 1.05.2006, 16:39:37
Post #7





Grupa: Zarejestrowani
Postów: 160
Pomógł: 0
Dołączył: 27.03.2006

Ostrzeżenie: (0%)
-----


Bardzo bym się cieszył, gdyby to działało, ale ciągle mam:
Parse error: parse error, unexpected ')' in [..] eval()'d code on line numer linii, w której jest ten eval

edit

Heh to był błąd mojego $string co sobie zrobiłem winksmiley.jpg
Dzięki, teraz działa biggrin.gif

Ostatnie pytanie:
Czemu wywala mi parse error jeżeli między pytajnikami stawiam funkcję z nawiasami? Np przy echo nie wywala, ale przy include('plik.php'); już jest byk

Ten post edytował LamaMASTER 1.05.2006, 16:55:13
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:29