String durch include() ersetzen !?!

The_real_Guru

Erfahrenes Mitglied
Ich möchte in einem Text einen bestimmten String durch einen include() einer anderen Seite ersetzen.
Wie kann ich dies umsetzen ?
Danke im Vorraus

Guru
 
generell ist das richtig, doch ich habe vergessen zu sagen, dass vom String eine Zahl übergeben werden muss an den include() ...

Beispiel:

$string="[diagramm:#52]";
$replace=include("sites/diagramm.php?id=52");

Guru
 
Zuletzt bearbeitet:
Hallo The_real_Guru!

Du hast also folgenden String:
$string="[diagramm:#52]";
die vorletzten zwei Felder möchtest du an einen anderen String anhängen!

Dann hast du den Befehl include...

Der include Aufruf wird ja mit einem String aufgerufen.
Dein String ist in dem Fall folgender:
"sites/diagramm.php?id=52"

Wenn du vonm ersten String einen substring mit den vorletzten zwei Feldern machst und den substring an den zweiten String anhängst und du mit dem fertigen String dann include aufrufst sollte es eigentlich keine Probleme geben!
$string="[diagramm:#52]";
$substring=substr($string,11,2);
$neuerstring = "sites/diagramm.php?id=".$substring;
$replace=include("$neuerstring ");

Rajan
 
die Idee ist ja so schon richtig, doch das passt bei mir nicht ganz, denn:

- deine Lösung begrenzt sich auf eine zweistellige ID des Diagramms
- deine Lösung ist nur für den Fall funktionabel, dass der string nur einmal im Text vorkommt

Guru
 
Ja das war ja nur ein Vorschlag!

Ich habe ja keine Ahnung wie du es realisierst!

Du musst ja nur auf vorkommen im Text prüfen und den Teil dann erstetzen!

Das ist alles!
 
Das mit dem include("sites/diagram.php?id=52"); wird dir in dem Fall nichts nützen, das das Ganze sich ja lokal auf dem Server befindet und daher nur die diagram.php eingebunden wird, egal, was in der Get-Abfrage drinsteht.
Ich würde dazu von anfang an die diagram.php includen, und darin eine Funktion schreiben, die im Endeffekt das gleiche macht, wie wenn die diagram.php?id=52 von einem externen Script aufgerufen wird. (unverständlich, ich weis).

Die Zahl kannst du auf 2 Wege herausfiltern:
1:
Code:
preg_match("/#([0-9]*)\]/isU", "[diagram#52]", $zahl);

$zahl = $zahl[1];
2: Is mir etz zu umständlich, Nr 1 muss langen

Und dann übergibst du $zahl eben der Funktion aus diagram.php
 
wie ich die zahl herausfiltere ist mir schon klar ...

erstmal müsste mal folgendes Problem gelöst werden:

wie schaffe ich es, dass an der stelle an der sich der String "[diagramm:#XX]" befindet die Datei sites/diagramm.php eingebunden wird ?

Guru
 
Wie gesagt, ein einfaches include reicht hier nicht.
Wenn du die Funktion so gestaltest, dass der gewünschte String zurückgegeben wird, könntest du es so machen:
Code:
$deintext = preg_replcae("/\[diagram#([0-9]*)\]/eisU", "deinefunktion('$1')", $deintext);
 
Also The_real_Guru, wenn ich das richtig verstanden habe möchtest du in deinem Text eine bestimmte Zeichenfolge durch etwas anderes ersetzen!

Am besten suchst du in deinem Text das erste Vorkommen dieser Zeichenfolge (z.B.: "[diagramm:#XX]") dann nimmst du den String bis zu dem Zeichen inkludierst den Teil den du haben möchstest und setzt den String mit dem Rest -deiner Zeichenfolge fort.

Das machst du so oft, solange deine Zeichenfolge vorkommt.

Es ist die Frage was du wirklich inkludieren möchtest!
Ist es ein Bild oder ist ein Text oder was ist es?

Rajan
 
Zurück