We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

[PHP] Inhalt zwischen zwei Tags auslesen


schwarzlicht
08.06.09, 16:08
Lass die Zeilen doch im Array, also ohne implode.
Baust eine Schleife

Code:
$inhalt = file($datei);
foreach($inhalt as $key => $zeile)
{
 if($zeile=="was ich suche")
 {
 $arraypos = $key;
 break;
}
}

echo $inhalt[$arraypos];

k!mmel
08.06.09, 14:09
Ok, funktioniert soweit mit Rubular.

Leider geht es im produktiven Einsatz noch immer nicht. Ich bekomme einfach keine Ausgabe im Quelltext. Wenn ich die aktuell aufgerufene Seite nach diesem Text durchsuchen möchte mache ich das doch am besten damit oder?
PHP-Code:
$datei implode(""file($_SERVER["SCRIPT_FILENAME"])); 
//Edit: Wenn ich stattdessen
PHP-Code:
$_SERVER['PHP_SELF'
verwende, bekomme ich dann diese Ausgabe:
Code:
Warning: file(/neu/index.php): failed to open stream: No such file or directory in /srv/www/htdocs/www/neu/index.php on line 144

Warning: implode(): Bad arguments. in /srv/www/htdocs/www/neu/index.php on line 144
Zeile 144 ist dann
PHP-Code:
$datei implode(""file($_SERVER['PHP_SELF'])); 
Vielleicht habe ich auch einfach einen völlig falschen Lösungsansatz.
Ich möchte aus einem Quelltext einfach eine Zeile Code finden und diesen dann als Linktext verwenden. Der Linktext soll im Header zu sehen sein, die Zeile Code ist allerdings am Ende der Seite.

MfG

k!mmel
06.06.09, 15:50
Ich werde das am Montag mal testen.
Vielen Dank für eure Tipps. Ich melde mich wieder.

MfG

baldi
06.06.09, 08:36
ich würd mit strpos nach "

" suchen.
dann nach "

" suchen.
und mit substr() dann anhand der positionen den rausziehen!

schwarzlicht
05.06.09, 22:35
Probier mal
Code:
$string = '

Langer Text

'; $inhalt = substr($string,6,-8); echo $inhalt;

lhw
05.06.09, 21:15
Also wenn du dir sicher bist das diese Tag-Kombination so existiert probier: /

([^<]+)/ das ist die kürzeste die mir gerade einfällt, allerdings natürlich nur anwendbar wenn in dem TEXT kein "<" vorkommt.

Um ein bisschen mit RegEx zu spielen ist www.rubular.com sehr zu empfehlen.


coresec
05.06.09, 20:39
Bevor das hier in lustigem Rätselraten ausartet: Poste doch einfach den Code und ich/wir können uns den anschauen. So hat das keinen Sinn.

k!mmel
05.06.09, 15:34
Sind Klammern drumrum ;-).

Aber es geht leider trotzdem nicht. Die entsprechende Codestelle kommt allerdings erst nach dem PHP-Teil. Aber soweit ich das in Erinnerung habe, wird die Ausgabe erst nach dem parsen generiert (?).

Ich brauche am Anfang der Seite diesen Code, damit ich eine Navigation generieren kann. Den Text für die Links der Navigation werden allerdings erst am Ende der Datei per HTML ausgegeben.

http://www.qpic.ws/images/7qz09648.png

MfG

whyte
05.06.09, 15:22
Bin ich jetzt blöd oder seh ich da kein Unterschied ... ???

coresec
05.06.09, 15:19
"/(

(.*)<\/b><\/p>)/"

Probiers mal damit


whyte
05.06.09, 14:49
Code:
le>/i", $da
Für mich ist das preg_match auch ein Buch mit 7 Siegeln, aber wenn das untere geht, ist nur das "i" oben weniger sowie der Doppelslash für das / ...

k!mmel
05.06.09, 14:35
Hallo,

ich habe mal wieder ein Problem:
Wie kann ich den Inhalt zwischen zwei Tags mittels PHP auslesen?
Es handelt sich um Text zwischen diesen Tags:

TEXT

.

Ich habe folgendes Script getestet, habe aber leider keine Ausgabe bekommen:
PHP-Code:
$datei implode(""file($_SERVER["SCRIPT_FILENAME"]));
if (
preg_match("/

(.*)<\/b><\/p>/"$datei$title)) {
echo 
$title[1];
}  
?>

Den Title-Tag konnte ich allerdings damit einwandfrei auslesen.
PHP-Code:
$datei implode(""file($_SERVER["SCRIPT_FILENAME"]));
if (
preg_match("/(.*)<\\/title>/i"</span><span style="color: #006600">, </span><span style="color: #0000CC">$datei</span><span style="color: #006600">, </span><span style="color: #0000CC">$title</span><span style="color: #006600">)) {  <br />echo </span><span style="color: #0000CC">$title</span><span style="color: #006600">[</span><span style="color: #0000CC">1</span><span style="color: #006600">]; <br />}  </span><span style="color: #0000CC">?></span> </span> </code></code></div> </div>Ich dreh' hier noch am Rad. Wo liegt der Fehler?<br /> Der Code existiert auf jeden Fall im Quelltext...<br /> <br /> MfG</div></div><hr /> </div> </body> </html> <script> var urlPageName = window.location.pathname; if (urlPageName =="/"){ urlPageName = "HomePage"; } window.ATInternet = { onTrackerLoad:function(){ window.tag = new window.ATInternet.Tracker.Tag(); tag.page.set({ name: urlPageName.replace(/\//g, "::"), }); tag.customVars.set({ site: { 1: "[FR]", 2: "[France]" } }); if(sessionStorage.getItem("user") != null){ /* Get NIC from API if logged in */ tag.identifiedVisitor.set({ id: sessionStorage.getItem("user"), category: "1" }); } tag.dispatch(); } }; (function(){ var at=document.createElement("script"); at.type="text/javascript"; at.async=true; at.src="https://www.ovh.com/fr/js/analytics/smarttag-forum.js"; (document.getElementsByTagName("head")[0]||document.getElementsByTagName("body")[0]||document.getElementsByTagName("script")[0].parentNode).insertBefore(at,null); })(); </script>