Smilies aus include() lesen

a*new*found*flo

Erfahrenes Mitglied
hallo!
ich habe folgendes Problem!

Meine Seite ist folgendermaßen aufgebaut:

Ich habe eine Indexdatei - in der Ist das gesamte Design abegelegt und die einzelen Seiten werden per include(); eingelesesn.
Nun wollte ich fragen ob es möglich ist,(bzw wie ich es anstelle wenns möglihc is) dass ich diese include Seite beim einlesen auf smilies überprüfe ( also solech smilie zeichen :D, :) ; ) ) usw.) und die smilies dann grafisch ausgebe?
Gibt es da eine möglichkeit?
Mir ist klar das man das normalerweise mit str_replace oder preg_replace erledigt - hab ich ja auch schon gemacht.....aber kann ich das auf eine ganze Include Datei umlegen?
Dankeschön, mfg flo :-)
 
Wenn du so etwas willst, ist include() die falsche Methode. Include bettet einfach an der Stelle, an der es steht, den gesamten Quellcode der, als Parameter übergebenen, Datei ein, als würde der Inhalt selbst dort stehen.

Somit hast du den Inhalt nicht in einem String und kannst dementsprechend auch keine String-Manipulationsfunktionen anwenden.

Es wäre also meiner Meinung nach sinnvoller über fopen() + fgets() zu gehen, da du so die Inhalte in Strings (zwiischen)speichern kannst und dann auch mit str_repalce respektive preg_replace arbeiten kannst.
 
Es ist zwar so ziemlich die schlechteste Methode, aber es geht so:
PHP:
<?php
ob_start();
include('file');
$contents = ob_get_contents();
ob_end_clean();

$contents = str_replace(':D', 'rofl.gif', $contents);
echo $contents;
?>
 
aha...super!
das heißt ich kann dann in weiterer folge die andern smilies einfach so einbinde´n? oder in ein array?
hab mich grad nochmals ein bisschen umgesehen und die verschiedensten methoden gesehen(arryas,schleifen usw.)
nur bin ich am überlegen wie das mit der variablen $contents ist..
die wird ja am schluss durch echo ausgegeben....kannst du mir das bitte nochmals erklären?
dankeschön!

PHP:
<?php
ob_start();
include('file');
$contents = ob_get_contents();
ob_end_clean();

$contents = str_replace(':D', 'rofl.gif', $contents);
$contents = str_replace(':)', '01.gif', $contents);
$contents = str_replace(':)', '01.gif', $contents);
echo $contents;
?>

oder?

hab mich grad über ob_start usw schlau gemacht!...danke is ne feine sache!
 
Zuletzt bearbeitet:
Wie Tim schon erklärt hat, solltest du am besten aber nur einen String bearbeiten in dem der Text steht, weil das Output Buffering doch relativ langsam ist.
 
hmmm bin zwar ansich kein freund des dateihandlings ... aber ich will das mal veruschen: was haltet ihr davon?
PHP:
<?
$fp =  fopen($include_datei , "r");
while ($line = fgets($fp)) {
if(str_replace(':D', 'rofl.gif', $fp)) {
echo fgets($fp);
}
}
?>
aber wenn ichs mir recht überlege dann kann das so auch nicht hinhaun ;(
 
Zuletzt bearbeitet:
Zurück