Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Suche in Datei und Ausgabe eines bestimmten values ?

Frage Entwicklung PHP

Mitglied: n0000b

n0000b (Level 1) - Jetzt verbinden

11.03.2012 um 17:03 Uhr, 2003 Aufrufe, 1 Kommentar

Hallo,

folgenden Code habe ich:

01.
  
02.
$searcher = new FileSystemStringSearch($datei, 'name'); 
03.
$searcher->run(); 
04.
if($searcher->getResultCount() > 0) { 
05.
         foreach($searcher->getResults() as $result) { 
06.
            if(strpos($result['lineContents'], "name") > 0) 
07.
08.
            echo($searcher->highlightSearchTerm(htmlspecialchars($result['lineContents']))."<br>"); 
09.
            $posname = strpos($result['lineContents'], "value") + 7; 
10.
            $stringname= substr($result['lineContents'], $posname); 
11.
            $stringname = substr ($stringname , 0, strpos($stringname,"\"")); 
12.
           
13.
           
14.
           
15.
16.
17.
} 
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:


01.
  
02.
   <div id="formElement"
03.
      <label class="title"
04.
         verify name 
05.
         <span class="small">required</span> 
06.
      </label> 
07.
      <div id="formInput"
08.
         <input type="name" name="nameDisplayed" value="********" onchange="setname()" id="name2"
09.
         <input type="hidden" name="name" value="blablablablablbvlalblablbfla" id="name"
10.
         <input type="hidden" name="namedChanged" value="false" id="nameChanged"
11.
      </div> 
12.
   </div> 

Ich möchte den value blablablablablbvlalblablbfla ausgeben. Wie muss ich obigen PHP Code anpassen?
Mitglied: Arano
11.03.2012 um 20:27 Uhr
Hallo n00000b... warum machst du dich selber runter... verstehe ich nicht...

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:
01.
$startpos = strpos($result['lineContents'], "value") + 7;  
02.
$endpos =  strpos($result['lineContents'], "\"", $startpos);  // oder ($startpos+1) !? 
03.
$value = substr ($result['lineContents'], $startpos, $endpos); 

Schönen Abend noch
~Arano
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell Funktion Ausgabe in Datei (2)

Frage von schicksal zum Thema Batch & Shell ...

Batch & Shell
Dateien mit Liste suchen (16)

Frage von 132351 zum Thema Batch & Shell ...

Windows Server
Powershell - suche nach gelöschter Datei aus LOG (15)

Frage von krischeu zum Thema Windows Server ...

Windows Server
Powershell logfile nach Datei suchen (2)

Frage von krischeu zum Thema Windows Server ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
CNC Maschinen verlieren Netzwerkverbindung (kurioser Fehler) (22)

Frage von NoHopeNoFear zum Thema LAN, WAN, Wireless ...

Webentwicklung
Aktuellen Mitarbeiter auf Homepage anzeigen (13)

Frage von alemanne21 zum Thema Webentwicklung ...

Windows Server
gelöst Parameter Übergabe Terminal Server (9)

Frage von ThomasKern zum Thema Windows Server ...

Batch & Shell
Anfängerfragen - Powershell - Mailboxvertretung im Pulk einrichten (8)

Frage von Yoshimitsu zum Thema Batch & Shell ...