Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Variable innerhalb Output Control Functions

0 views
Skip to first unread message

Detlef Paschke

unread,
Nov 28, 2022, 10:32:41 AM11/28/22
to
Hallo,

ich hätte da mal noch ein Problem.

Ich bastele hier ein wenig an einem Script, in dem die Output Control
Functions verwendet werden soll. Das ganze ist ein Suchskript, dass bei
PHP-Dateien noch nicht zuverlässig funktioniert, die erst beim Aufruf
(z.B. per include) "zusammengebaut" werden. Mein Ansatz war dieser und
ich habe einiges an Nerven lassen müssen um zunächst die Ursache für das
nicht funktionieren zu finden: (die echo's gehören zu meiner Fehlersuche)

if ($dateiendung == '.php') {
echo $datei;
ob_start();
echo $datei;
include ($datei);
$text = ob_get_contents();
ob_end_clean();
echo $datei;
} else {

Letztendlich habe ich gefunden, dass die Variable $datei, die weiter
oben definiert wird, innerhalb der Output Control Functions nicht
verfügbar ist. Ich habe es mit globe $datei; versucht, was aber auch
nicht hilf.

In "include()" muss eine Variable, die außerhalb der Output Control
Functions definiert wird. Wie bekommt man das hin oder, geht das überhaupt?

Viele Grüße
Detlef Paschke

--
Das "Zitat des Augenblicks" gibt es nur auf
https://schabau.eu
Meine "Merkzettel"
https://helpdesk.schabau.eu

Karl Pflästerer

unread,
Nov 29, 2022, 2:45:10 AM11/29/22
to
Detlef Paschke <sch...@t-online.de> writes:

> Hallo,
>
> ich hätte da mal noch ein Problem.
>
> Ich bastele hier ein wenig an einem Script, in dem die Output Control
> Functions verwendet werden soll. Das ganze ist ein Suchskript, dass bei
> PHP-Dateien noch nicht zuverlässig funktioniert, die erst beim Aufruf
> (z.B. per include) "zusammengebaut" werden. Mein Ansatz war dieser und
> ich habe einiges an Nerven lassen müssen um zunächst die Ursache für das
> nicht funktionieren zu finden: (die echo's gehören zu meiner Fehlersuche)
>
> if ($dateiendung == '.php') {
> echo $datei;
> ob_start();
> echo $datei;
> include ($datei);
> $text = ob_get_contents();
> ob_end_clean();
> echo $datei;
> } else {
>
> Letztendlich habe ich gefunden, dass die Variable $datei, die weiter
> oben definiert wird, innerhalb der Output Control Functions nicht
> verfügbar ist. Ich habe es mit globe $datei; versucht, was aber auch
> nicht hilf.
>
> In "include()" muss eine Variable, die außerhalb der Output Control
> Functions definiert wird. Wie bekommt man das hin oder, geht das überhaupt?

beschreibe doch einfach ma, was du machen willst. Aus obigenm geht es
nicht so recht hervor

KP

Detlef Paschke

unread,
Nov 29, 2022, 4:37:37 AM11/29/22
to
Am 29.11.2022 um 08:45 schrieb Karl Pflästerer:
> Detlef Paschke <sch...@t-online.de> writes:
>
>> Hallo,
>>
>> ich hätte da mal noch ein Problem.
>>
>> Ich bastele hier ein wenig an einem Script, in dem die Output Control
>> Functions verwendet werden soll. Das ganze ist ein Suchskript, dass bei
>> PHP-Dateien noch nicht zuverlässig funktioniert, die erst beim Aufruf
>> (z.B. per include) "zusammengebaut" werden.
>> ...
>
> beschreibe doch einfach ma, was du machen willst. Aus obigenm geht es
> nicht so recht hervor

Ich dachte, dass ich das tat...? Nun gut.

>> if ($dateiendung == '.php') {
>> echo $datei;
>> ob_start();
>> echo $datei;
>> include ($datei);
>> $text = ob_get_contents();
>> ob_end_clean();
>> echo $datei;
>> } else {
>>
>> Letztendlich habe ich gefunden, dass die Variable $datei, die weiter
>> oben definiert wird, innerhalb der Output Control Functions nicht
>> verfügbar ist. ...

Ich kann aber meine Frage zurückziehen, weil die ganze Sache doch
funktioniert. Es hing an einer anderen Stelle und include ($datei)
funktioniert doch so wie es soll. Das einzige was nicht geht ist das
echo nach ob_start(), dass ich zur Fehlersuche eingebaut hatte.
Das ist natürlich ein Riesen Problem für mich als fürchterlichen PHP
Laien und Bastler, denn für die Fehlersuchen baue ich immer an den
verschiedenen Stellen echo's ein um zu sehen, bis wo noch alles so ist,
wie es soll.
Nun weiß ich, dass das nicht immer funktioniert. ;-)

Trotzdem danke fürs Nachdenken.

> KP

Arno Welzel

unread,
Dec 4, 2022, 8:38:59 PM12/4/22
to
Detlef Paschke, 2022-11-29 10:37:

[...]
> Ich kann aber meine Frage zurückziehen, weil die ganze Sache doch
> funktioniert. Es hing an einer anderen Stelle und include ($datei)
> funktioniert doch so wie es soll. Das einzige was nicht geht ist das
> echo nach ob_start(), dass ich zur Fehlersuche eingebaut hatte.
> Das ist natürlich ein Riesen Problem für mich als fürchterlichen PHP
> Laien und Bastler, denn für die Fehlersuchen baue ich immer an den
> verschiedenen Stellen echo's ein um zu sehen, bis wo noch alles so ist,
> wie es soll.
> Nun weiß ich, dass das nicht immer funktioniert. ;-)

Du solltest Dich mal mit XDebug befassen und wie man damit und einer
geeigneten Entwicklungsumgebung wie Visual Studio Code PHP-Scripte
debuggen kann:

<https://dev.to/yongdev/how-to-debug-php-using-xdebug-on-vscode-3n4>

Damit sparst Du Dir "debug-echo"-Anweisungen und kannst einfach die
Scripte live im Editor Zeile für Zeile laufen lassen und auch bei
include oder require in das so eingebundene Script reinschauen und die
Variablen etc. genau ansehen.

--
Arno Welzel
https://arnowelzel.de

Detlef Paschke

unread,
Dec 5, 2022, 7:19:41 AM12/5/22
to
Am 05.12.2022 um 02:38 schrieb Arno Welzel:
> Detlef Paschke, 2022-11-29 10:37:
>
>> Das ist natürlich ein Riesen Problem für mich als fürchterlichen PHP
>> Laien und Bastler, denn für die Fehlersuchen baue ich immer an den
>> verschiedenen Stellen echo's ein um zu sehen, bis wo noch alles so ist,
>> wie es soll.
>> Nun weiß ich, dass das nicht immer funktioniert. ;-)
>
> Du solltest Dich mal mit XDebug befassen und wie man damit und einer
> geeigneten Entwicklungsumgebung wie Visual Studio Code PHP-Scripte
> debuggen kann:
>

Danke dir für den Tipp. Visual Studio habe ich mir auch schon mehrfach
angesehen und ausprobiert aber dafür bin ich so was von zu blöd..., da
verzweifele ich schon an vielen Konfigurationspunkten und hänge Stunden-
und Tagelang fest daran.
Für mein bisschen Kleinkram nehme ich Notepad++ und komme halbwegs klar
damit.

Detlef Paschke

unread,
Jan 30, 2023, 6:01:49 AM1/30/23
to
Am 05.12.2022 um 13:19 schrieb Detlef Paschke:
> Am 05.12.2022 um 02:38 schrieb Arno Welzel:
>> Detlef Paschke, 2022-11-29 10:37:
>>
>>> Das ist natürlich ein Riesen Problem für mich als fürchterlichen PHP
>>> Laien und Bastler, denn für die Fehlersuchen baue ich immer an den
>>> verschiedenen Stellen echo's ein um zu sehen, bis wo noch alles so ist,
>>> wie es soll.
>>> Nun weiß ich, dass das nicht immer funktioniert. ;-)
>>
>> Du solltest Dich mal mit XDebug befassen und wie man damit und einer
>> geeigneten Entwicklungsumgebung wie Visual Studio Code PHP-Scripte
>> debuggen kann:
>>
>
> Danke dir für den Tipp. Visual Studio habe ich mir auch schon mehrfach
> angesehen und ausprobiert aber dafür bin ich so was von zu blöd...

Der Wink hat mich veranlasst, mir Visual Studio Code doch noch einmal
anzusehen und so habe ich mich die letzten Wochen noch mal intensiv
damit beschäftigt. Ich beherrsche jetzt sicher nur einen winzig kleinen
Bruchteil aber wenn man einmal halbwegs angekommen ist, ist es genial.

Kleine Fehler, die nie aufgefallen sind, habe ich sofort gezeigt
bekommen und weil es direkt Spaß gemacht hat, habe ich ein paar alte
Sachen komplett anders und neu geschrieben. Fit für PHP 8.x sind meine
paar Sachen jetzt wohl auch. Danke noch mal.

Viele Grüße
Detlef Paschke

--
Das "Zitat des Augenblick" gibt es nur auf:
https://schabau.eu

Meine "Merkzettel" findet man unter:
https://helpdesk.schabau.eu

Arno Welzel

unread,
Feb 5, 2023, 8:06:45 PM2/5/23
to
Detlef Paschke, 2023-01-30 12:01:

[...]
> Der Wink hat mich veranlasst, mir Visual Studio Code doch noch einmal
> anzusehen und so habe ich mich die letzten Wochen noch mal intensiv
> damit beschäftigt. Ich beherrsche jetzt sicher nur einen winzig kleinen
> Bruchteil aber wenn man einmal halbwegs angekommen ist, ist es genial.
>
> Kleine Fehler, die nie aufgefallen sind, habe ich sofort gezeigt
> bekommen und weil es direkt Spaß gemacht hat, habe ich ein paar alte
> Sachen komplett anders und neu geschrieben. Fit für PHP 8.x sind meine
> paar Sachen jetzt wohl auch. Danke noch mal.

Gern geschehen.

Die nächste Stufe wäre dann, auch mal phpcs (mit phpcbf zur
automatischen Korrektur der Sachen, die ohne manuelle Eingriffe behoben
werdne können) und ggf. psalm anzuschauen. Wundere Dich nicht, wenn
diese Tools erstmal dutzende oder hunderte Warnungen oedr Fehler melden,
aber damit kann man seine Code-Qualität nochmal deutlich steigern, wenn
man die Meldungen beachtet.
0 new messages