Skocz do zawartości

Wyświetlić na początku strony zmienną z jej końca


jamcito

Rekomendowane odpowiedzi

Brzmi niedorzecznie? Być może, ale ponoć PHP jest wielki :)

Próbowałem z ob_start() i referencjami, ale mi nie działa, a chodzi mi o to żeby zmienną której wartość przypiszę dopiero na końcu strony (wynik pewnego działania) wyświetlić na początku strony. Od razu zaznaczę, że tego działana nie mogę wykonać na początku strony, czyli tam gdzie chcę wyświetlić jego wynik.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie da się odwołać do zmiennej, która nie istnieje. A w tym przypadku nie istnieje.

Możesz odwołać się do funkcji, która będzie na końcu kodu.

Ewentualnie w minimum 5.3 użyć struktury goto (wracasz na początek i później znów do poprzedniego miejsca) np.:

<?php

$dodatkowy_parametr = 0;
poczatek:

if (isset($zmienna)) {
	echo $zmienna;
}

if ($dodatkowy_parametr == 1) {
	goto koniec:
}

//tu dowolny kod
//twojego skryptu


$zmienna = 'Jestem zmienną zdefiniowaną na końcu';
$dodatkowy_parametr = 1;
	goto poczatek;

koniec:


?>
Odnośnik do komentarza
Udostępnij na innych stronach

1) Sterowanie przepływem po przez instrukcje warunkowe

2) Konkatenacja zmiennych

3) Buforowanie danych przed wysłaniem ich do OUT

4) Function Handling

I prawidłowe projektowanie aplikacji, bo twoja "logika" < w zasadzie jej brak> aplikacji do takich się nie zalicza :nie_powiem:

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

@ Don Oka niestety nie udało sie wcisnąć wg Twojej propozycji

1111111111<br>
2222222222<br>
<?php

$dodatkowy_parametr = 0;
poczatek:

if (isset($zmienna)) {
  echo $zmienna;
}

if ($dodatkowy_parametr == 1) {
	goto koniec;
}

?>
reszta strony<br>
<?php

$zmienna = '3333333 Jestem zmienną zdefiniowaną na końcu, a powinnam byc wyswietlona miedzy 2222222 i reszta strony<br>';
$dodatkowy_parametr = 1;
	goto poczatek;

koniec:

?>
Odnośnik do komentarza
Udostępnij na innych stronach

Jasne, że się nie udało, bo instrukcja goto nie tak działa, że "wyłapuje" w przeskokach zmienne :zeby:

Dawno bardziej za przeproszeniem idiot**** koncepcji nie widziałem.

<?php
// dziwak.php

class Dziwak
{
	public function Pierwszy()
	{
		return "Jestem pierwszy";
	}
	
	public function Drugi()
	{
		return "Jestem drugi";
	}

	public function Trzeci()
	{
		return  '3333333 Jestem zmienną zdefiniowana na końcu, a powinnam byc wyswietlona miedzy 2222222 i reszta strony<br>';
	}
}

$dziwak = new Dziwak();
echo $dziwak->Trzeci().'<HR>';;
echo $dziwak->Pierwszy().'<HR>';;
echo $dziwak->Drugi();

?>

OUT: https://www.http200.pl/chwilowy/dziwak.php

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

A tu masz tak jak chciałeś:

<?php
// dziwak2.php
ob_start();

echo "Jestem pierwszy 1111111111<br />";
echo "Jestem drugi 2222222222<br />";

echo "{PODMIEN_MNIE}";

echo "<HR>Jestem reszte strony ..... <br />";

$buffercontent = ob_get_contents();
ob_end_clean();

$zmienna = '3333333 Jestem zmienna zdefiniowana na koncu, a powinnam byc wyswietlona miedzy 2222222 i reszta strony<br>';

echo str_replace ( "{PODMIEN_MNIE}", $zmienna, $buffercontent );

?>

OUT 2: https://www.http200.pl/chwilowy/dziwak2.php

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki, z klawiatury mi to wyjąłeś :) Wiedziałem, że rozwiązaniem jest buforowanie, tylko, że wybrałem złą koncepcję.

Struktura strony to:

1. Poczatek. jakiś tam tekst

2. tu ma być wyświetlona zmienna, która zostanie zainicjowana w include, z zależności od parametrów z GETa

3. include(plik w zależności od GETa)

Ja dałem buforowanie przed 1 i po 3 a powinno (jeszcze nie sprawdziłem) chyba tak:

1 buforujemy include i mamy już wartość zmiennej

2 wyswietlamy poczatek

3. wyswietlamy zmienna

4 wypluwamy zbuforowany include.

true?

Odnośnik do komentarza
Udostępnij na innych stronach

Zainteresuj się frameworkami np kohana bo budowa oparta o include jest z minionego wieku...

Pozdrawiam

---

Wysłano z iPhone

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

PHP i HTML to jakby dwie różne sprawy.

Jak trzymasz wszystko w jednym i chcesz wyświetlić wynik obliczony pod koniec strony to tylko javascriptem (wbija wartość do danego objektu html)

Ale to jakiś archaizm tak budować strony,

Każdy poważny CMS najpierw przygotowuje wszystko w PHP i jak gotowe dopiero wyświetla wszystko w html, używając jakiś tam engine templatów.

Sorry, nie odpowiadam na PMy

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności