php laden in php?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?php
PHP Code
?>
<html>
<head>
<title>Titel</title>
</head>
<body>Quelltext</body>
</html>
In dem Fall statt echo eine var verwenden! Beispiel -->

Code: Alles auswählen

.
.
.
$online = '';
while (trim($nickname) != "") { 
$online = "Online: " . trim($nickname) . ","; 
$nickname = fgets($listfile); 
} 
$online = "</ul>";
?>
Aber wie gesagt, die Alternative heißt "Output Buffering"

Kleines Beispiel -->

Code: Alles auswählen

ob_start();
include("chat.php");
$chatonline = ob_get_contents();
ob_end_clean();
Die var $chatonline sollte dann auch dein Echo enthalten.

Nur der Handler ist nicht der Schnellste :/ easy
Zuletzt geändert von easygo am 13.01.2007 15:03, insgesamt 1-mal geändert.
Benutzeravatar
leopittoni
Mitglied
Beiträge: 1162
Registriert: 26.04.2004 20:17

Beitrag von leopittoni »

Sorry, ich kapiers leider immer noch nicht... habe keine Ahnung von PHP...

Code: Alles auswählen

<?php 
$listfile = fopen("http://scripts.blitzed.org/chanuserlist?channel=%23channel&pass=passwort", "r"); 
$nickname = fgets($listfile); 
while (trim($nickname) != "") 
{ 
$chatonline = "Online: " . trim($nickname) . ","; 
$nickname = fgets($listfile); 
} 
$chatonline = "</ul>"; 
fclose($listfile); 
?> 

<html> 
<head> 
<title>Chat</title> 
</head> 
<body> 
<?php 
echo($chatonline); 
?> 
</body> 
</html>
Dies gibt eine weisse leere Seite.

Léo
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

$chat-online ?? Also Bindestriche sind schon mal keine gute Idee.

EDIT: Das hast du wohl grad selbst gemerkt, wie ich sehe. 8)

Und was wolltest du mit echo im Quelltext erreichen?

Alternative siehe oben (EDIT war zeitgleich)
Benutzeravatar
leopittoni
Mitglied
Beiträge: 1162
Registriert: 26.04.2004 20:17

Beitrag von leopittoni »

Code: Alles auswählen

ob_start(); 
include("chat.php"); 
$chatonline = ob_get_contents(); 
ob_end_clean();
Hmm, wo muss das nun hin? in die index.php? Hai, ist das kompliziert...


Léo

EDIT: Was müsste denn in den Quelltext? Nur $chatonline ?

Danke! Léo
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

leopittoni hat geschrieben:Dies gibt eine weisse leere Seite.
Was Wunder :wink: wie gesagt..
easygo hat geschrieben:Du solltest wissen, dass ALLES was zwischen <?php und ?> steht, KEIN Quelltext ist :/ easy
Benutzeravatar
leopittoni
Mitglied
Beiträge: 1162
Registriert: 26.04.2004 20:17

Beitrag von leopittoni »

Code: Alles auswählen

<?php
$listfile = fopen("http://scripts.blitzed.org/chanuserlist?channel=%23channel&pass=passwort", "r");
$nickname = fgets($listfile);
while (trim($nickname) != "") 
{
$chatonline = "Online: " . trim($nickname) . ",";
$nickname = fgets($listfile);
}
$chatonline = "</ul>";
fclose($listfile);
?>

<html>
<head>
<title>Chat</title>
</head>
<body>
$chatonline
</body>
</html>
Das gibt natürlich $chatonline aus, aber nicht die Usernamen... Darum hatte ich das ja in ein echo() gepackt..

Wie soll ich das denn im html-teil ausgeben?

Léo
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

leopittoni hat geschrieben:Hmm, wo muss das nun hin? in die index.php?
Wohin du willst und bevor die Seite ausgegeben wird, wenns geht. :wink:

In der index.php steht dort als Beispiel -->

Code: Alles auswählen

//
// Start output of page
//
In der page_header.php gehört der Code vor..

Code: Alles auswählen

// The following assigns all _common_ variables that may be used at any point in a template.
Assign könnte so aussehn..

Code: Alles auswählen

'CHAT_ONLINE' => $chatonline,
{CHAT_ONLINE} kann dann im Template (Quelltext) verwendet werden.
leopittoni hat geschrieben: Hai, ist das kompliziert...
Wer hat dir gesagt, dass Coding einfach ist? :/ easy
Benutzeravatar
leopittoni
Mitglied
Beiträge: 1162
Registriert: 26.04.2004 20:17

Beitrag von leopittoni »

sorry. nochmals.

Geht es denn nicht mit der ersten Methode?

Code: Alles auswählen

<?php
$listfile = fopen("http://scripts.blitzed.org/chanuserlist?channel=%23channel&pass=passwort", "r");
$nickname = fgets($listfile);
while (trim($nickname) != "") 
{
$chatonline = "Online: " . trim($nickname) . ",";
$nickname = fgets($listfile);
}
$chatonline = "</ul>";
fclose($listfile);

'CHAT_ONLINE' => $chatonline;
?>

<html>
<head>
<title>Chat</title>
</head>
<body>
{chatonline}
</body>
</html>
Muss da nicht nur noch das Ausgeben der Variabel $chatonline in HTML korrigiert werden, damits funktioniert? Sonst mach ichs lieber so, also die andere Alternative...

Nur: Wie das ausgeben in HTML?

Danke dir nochmals! Léo
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

leopittoni hat geschrieben:Geht es denn nicht mit der ersten Methode?
So auf keinen Fall und versteif dich mal nicht zu sehr auf das implode.
Das wäre z.B. sinnvoll, wenn du die Daten aus dem Cache holst.

Aber du willst ja unbedingt "ständig" einen externen Server abfragen. :-?

Der Assign 'CHAT_ONLINE' => $chatonline, gehört übrigens als neue Zeile in so ein array

Code: Alles auswählen

$template->assign_vars(array(
und das setzt u.a. ein Template voraus, mein ich. easy
Benutzeravatar
leopittoni
Mitglied
Beiträge: 1162
Registriert: 26.04.2004 20:17

Beitrag von leopittoni »

Ok... dann also kein implode mehr...

Code: Alles auswählen

ob_start(); 
include("chat-online.php"); 
$chatonline = ob_get_contents(); 
ob_end_clean();
Das sollte die Datei mit dem Code sein, die die User-Online mit echo() ausgiebt? Und das kommt irgendwo auf der index.php (vor dem ausgeben der Seite)

Code: Alles auswählen

$template->assign_vars(array(
Darin kommt

Code: Alles auswählen

'CHAT_ONLINE' => $chatonline,
So. Hab ich das so richtig verstanden?

-> Das geht nämlich nicht. Es kommt:

Code: Alles auswählen

Warning: fopen() [function.fopen]: URL file-access is disabled in the server configuration in /home/httpd/vhosts/magboard.com/httpdocs/chat/chat-online.php on line 2

Warning: fopen(http://scripts.blitzed.org/chanuserlist?channel=%23magboard&pass=magircpass) [function.fopen]: failed to open stream: no suitable wrapper could be found in /home/httpd/vhosts/magboard.com/httpdocs/chat/chat-online.php on line 2

Warning: fgets(): supplied argument is not a valid stream resource in /home/httpd/vhosts/magboard.com/httpdocs/chat/chat-online.php on line 3


Warning: fclose(): supplied argument is not a valid stream resource in /home/httpd/vhosts/magboard.com/httpdocs/chat/chat-online.php on line 10
{chatonline}
Nur der Ordner chat hat fopen-Rechte. Deshalb muss ich ja auch irgendwie den Inhalt der Datei laden, und die Datei nicht einfach includen.
Also muss das wohl doch mit "implode" gemacht werden, oder?

Léo
Antworten

Zurück zu „Coding & Technik“