Suche in Datei und Ausgabe eines bestimmten values ?
Hallo,
folgenden Code habe ich:
Dieses Skript soll für mich in Dateien nach dem Begriff "name" suchen und den value ausgeben. Problem ist, dass der Begriff mehrmals vorkommt und er mir nicht genau die von mir gewünschte Zeile ausgibt.
In der Datei sieht dies wie folgt aus:
Ich möchte den value blablablablablbvlalblablbfla ausgeben. Wie muss ich obigen PHP Code anpassen?
folgenden Code habe ich:
$searcher = new FileSystemStringSearch($datei, 'name');
$searcher->run();
if($searcher->getResultCount() > 0) {
foreach($searcher->getResults() as $result) {
if(strpos($result['lineContents'], "name") > 0)
{
echo($searcher->highlightSearchTerm(htmlspecialchars($result['lineContents']))."<br>");
$posname = strpos($result['lineContents'], "value") + 7;
$stringname= substr($result['lineContents'], $posname);
$stringname = substr ($stringname , 0, strpos($stringname,"\""));
}
}
}
Dieses Skript soll für mich in Dateien nach dem Begriff "name" suchen und den value ausgeben. Problem ist, dass der Begriff mehrmals vorkommt und er mir nicht genau die von mir gewünschte Zeile ausgibt.
In der Datei sieht dies wie folgt aus:
<div id="formElement">
<label class="title">
verify name
<span class="small">required</span>
</label>
<div id="formInput">
<input type="name" name="nameDisplayed" value="********" onchange="setname()" id="name2">
<input type="hidden" name="name" value="blablablablablbvlalblablbfla" id="name">
<input type="hidden" name="namedChanged" value="false" id="nameChanged">
</div>
</div>
Ich möchte den value blablablablablbvlalblablbfla ausgeben. Wie muss ich obigen PHP Code anpassen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 181758
Url: https://administrator.de/contentid/181758
Ausgedruckt am: 25.11.2024 um 03:11 Uhr
1 Kommentar
Hallo n00000b... warum machst du dich selber runter... verstehe ich nicht...
Warum möchtet du denn den Value "blablablablablbvlalblablbfla" habe ?
Weil
Wenn name so oft vorkommt, dann solltest du deine Suche vielleicht etwas einschränken:
Das sollte dann nur noch ein Ergebnis liefern.
Dann solltest du dir noch mal das Manual zu strpos ansehen, das __Englische__ - die deutsch Übersetzung ist mal wieder unvollständig / nicht so genau...
Als Hinweis, folgendes ist FALSCH, ein Logikfehler !
Und dann würde ich das so machen:
Schönen Abend noch
~Arano
Warum möchtet du denn den Value "blablablablablbvlalblablbfla" habe ?
Weil
name="name"
oder weil id="name"
Wenn name so oft vorkommt, dann solltest du deine Suche vielleicht etwas einschränken:
$searcher = new FileSystemStringSearch($datei, 'id="name"');
Das sollte dann nur noch ein Ergebnis liefern.
Dann solltest du dir noch mal das Manual zu strpos ansehen, das __Englische__ - die deutsch Übersetzung ist mal wieder unvollständig / nicht so genau...
Als Hinweis, folgendes ist FALSCH, ein Logikfehler !
if(strpos($result['lineContents'], "name") > 0)
Und dann würde ich das so machen:
$startpos = strpos($result['lineContents'], "value") + 7;
$endpos = strpos($result['lineContents'], "\"", $startpos); // oder ($startpos+1) !?
$value = substr ($result['lineContents'], $startpos, $endpos);
Schönen Abend noch
~Arano