Durchsuchen und ausgeben aus Textdatei...komm nicht weiter...
Raffi
- php
Hallo Leute
Habe vergebens versucht:
Den Titel aus einer Datei auszulesen.
/Title (Crystal Reports - Offene Leistung )>>
^^^^^^ ^^
Also das zwischen /Title und >> ist der eigentliche Titel.
Das wurde mir als Link empfohlen:
http://de.php.net/manual/en/function.preg-match-all.php
Das als Suchmuster:
$muster = "|/Title (([^)>]+))>>|";
Jetzt habe ich folgendes zusammengebaut:
$the_file_to_search = "test.pdf";
$search_pattern = "/Title";
$muster = "|/Title (([^)>]+))>>|";
$fcontents = file ($the_file_to_search);
while (list ($line_num, $line) = each ($fcontents)) {
if (ereg($search_pattern,$line))
echo preg_match_all($muster, $line);
}
Irgendwie will das ganze nicht. Wie kann ich einen möglichst kurzen Code erstellen, der mir einfach den Titel wie oben beschrieben aus dem File ausgibt?
Danke und Grüsse aus der Schweiz
Raffi
Moin Raffi
echo preg_match_all($muster, $line);
Irgendwie will das ganze nicht.
Der Weg ist schon richtig, allerdings arbeitet preg_match_all
_nicht_ so wie Du das (nach Deiner Verwendungsweise der Funktion) erwartest.
Lies die Beschreibung in der Dokumentation nochmal _ganz_ durch.
Viele Grüße
lulu
Habe ich schon etwa 3 mal gelesen.....irgendwie blick ich einfach nicht durch....habe irgendwie einen Knopf.
Kann mir jemand helfen?
Gruss und danke
Raffi
Huhu Raffi
Habe ich schon etwa 3 mal gelesen.....irgendwie blick ich einfach nicht durch....habe irgendwie einen Knopf.
wo liest Du denn, ich hoffe doch hier
http://de2.php.net/manual/en/function.preg-match-all.php
da steht gleich am Beginn folgendes:
<quote>
Description
int preg_match_all ( string pattern, string subject, array matches [, int flags])
Searches subject for all matches to the regular expression given in pattern and puts them in matches in the order specified by flags.
</quote>
Schau Dir die Beispiele an.
Auf dem Zaunpfahl steht "dritter Parameter -> matches".
Viele Grüße
lulu
Soweit so gut....
Habe nun etwas hinbekommen:
$the_file_to_search = "test.pdf";
$search_pattern = "/Title";
$muster = "|/Title (([^)>]+))>>|";
$fcontents = file ($the_file_to_search);
while (list ($line_num, $line) = each ($fcontents)) {
if (ereg($search_pattern,$line))
if (preg_match_all("#\Title(.*?)>>#", $line, $match))
for ($i = 0; $i < count($match[1]); $i++) {
echo $match[1][$i] . "\n";
}
}
Ist das so gut, oder kann man den Script noch verkürzen / Verbessern?
Danke für Eure Hilfe.
Gruss
Raffi
Huhu Raffi
habe den ersten Thread nicht verfolgt, aber wenn Du nur den
/Titel suchen möchtest reicht ja preg_match völlig aus.
Wenn Du hingegen alle Konstrukte der Art /BEZEICHNER INHALT >>
finden möchtest geht das prima mit preg_match_all.
Das ist dann aber schon etwas kniffliger ;-)
Viele Grüße
lulu
Hello,
pass bloß auf, dass keine merkt, dass Du noch einen offenen Thread zu dem Thema hast *ggg*
Sorry, ich hab das heute Nacht mit den Reg_Exps auch nicht mehr hingekriegt. Dieser Weinthread hat mich ganz betrunken gemacht.
Liebe Grüße aus http://www.braunschweig.de
Tom
Ja sorry tut mir leid....Dachte hat ja gar nichts mehr mit der anfangsfrage zu tun.
Habe jetzt noch folgendes versucht:
$the_file_to_search = "test.pdf";
$search_pattern = "/Title";
$muster = "|/Title (([^)>]+))>>|";
$fcontents = file ($the_file_to_search);
while (list ($line_num, $line) = each ($fcontents)) {
if (ereg($search_pattern,$line))
preg_match_all ($muster, $line, $out, PREG_SET_ORDER);
print $out[0][0].", ".$out[0][1]."\n";
print $out[1][0].", ".$out[1][1]."\n";
}
Geht auch nicht....glaube ich bin jetzt betrunken *loool*
Hst Du eine Idee Tom?
Danke und Gruss
Raffi