Top-Themen

Aktuelle Themen (A bis Z)

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

gelöst txt-Datei mit file() laden - array search liefert immer null false

Mitglied: tob1

tob1 (Level 1) - Jetzt verbinden

15.10.2006, aktualisiert 16.10.2006, 4446 Aufrufe, 3 Kommentare

Ich hab ein kleines Problem, vielleicht kann mir da jem. helfen und zwar habe ich eine txt-Datei im folgenden Format

PROZESSOR
Name: AMD Athlon(tm) XP 2400+
CurrentClockSpeed: 2002


COMPUTERMODELL
Manufacturer: VIA Technologies, Inc.
Model KM266-8235


LOGON USER
UserName: TL-ARBEIT\Tobias


OS
SystemStartupOptions: "Microsoft Windows XP Professional" /noexecute=optin /fastdetect


BIOS
BIOSVersion: KM266 - 42302e31,Phoenix - AwardBIOS v6.00PG,Phoenix-Award BIOS v6.00PG


das ist eine Invetardatei, die soll nun mit PHP ausgelesen werden und die Werte in eine Datenbank habe die txt eingelesen und will nun nach einem Stichwort suchen, aber egal wie ich es mache gibt er mir null oder false zurück


und zwar hab ich mir das wie folgt gedacht:

1) Ich öffne erst den Ordner
2) Lese die Dateinamen aus,
3) Schreibe die in die Hostnamen Tabelle
4) Dann lese ich die Tabelle aus
5) Speichere die Datei von dem Hostnamen in ein array
6) Durchsuche das array nach der Zeile " Prozessor " dann weiß ich an welcher Stelle das steht im array zB Stelle 2 dann weiß ich das der CPUName in array[3] steht und die Frequenz in array[4] usw. usw. 7) Dann speicher ich alles in eine Temp Tabelle und danach wenn alles ausgelesen ist wird die Temp Tabelle ausgelesen und geguckt wo welcher Prozessor gleich ist, Speicher etc, und ersetzt das durch die id's usw.

das skript zum auslesen sieht wie folgt aus..


01.
    $filename=$pfad.$Hostname_Name.".txt"
02.
 
03.
## 
04.
## Geht nicht mit file(), egal ob mit array_search, in_array oder array_keys wird immer null od. false zurückgegeben 
05.
## 
06.
    $array = file($filename); 
07.
## 
08.
## Da es mit file() nicht funktionierte dachte ich, lese ich das so ein mit fgets() funktioniert auch nicht! 
09.
## 
10.
 
11.
    $i=0; 
12.
    $handle = fopen($filename, "r"); 
13.
    while(!feof($handle)) 
14.
15.
        $array[$i]=fgets($handle, 4096); 
16.
        $i++; 
17.
18.
 
19.
## 
20.
## Mit print_r wird mir das Array aber richtig angezeigt! 
21.
## 
22.
 
23.
    print_r($array); 
24.
 
25.
## 
26.
## Beide $cpu_i liefern eine null od. false egal ob mit fgets oder file eingelesen 
27.
## 
28.
 
29.
#    $cpu_i = array_search("########## PROZESSOR ##########", $array); 
30.
#    $cpu_i = array_search('AMD', $array); 
31.
 
32.
## 
33.
## Wenn ich selber $array2[5]="Prozessor" mache und nach Prozessor suche findet er das?! Liegt wohl an file() ? 
34.
## 
35.
 
36.
#    if($cpu_i != false) echo $cpu_i; else echo "kein wert für cpu i"
37.
 
38.
    $CPU_Name = $array[$cpu_i + 1]; 
39.
    $CPU_Name = str_replace("Name: ", "", $CPU_Name); 
40.
 
41.
    $CPU_Speed = $array[$cpu_i + 2]; 
42.
    $CPU_Speed = str_replace("CurrentClockSpeed: ", "", $CPU_Speed); 
43.
 
44.
    echo $CPU_Name." 
45.
".$CPU_Speed." 
46.
"; 
47.
 
Das problem ist das $cpu_i und $mainboard_i eine Null haben bzw false, also die funktionieren nicht... deswegen gibt er mir immer den Prozessor aus, also Zeile 1 und 2 weil ich ja +1 und +2 sage aber die Zählvariablen wo er die Stelle im array sucht, gibst nicht, ist leer.. was kann ich da machen?

Hat jem. ein Tipp oder eine andere Möglichkeit?

Vielen Dank schonmal im Vorraus.
Gruß Tobias
Mitglied: 6890
15.10.2006 um 14:28 Uhr
hallo,

sorry kenn mich in php ni sooo gut aus, aber muss ein array in php ni erst als array initialisiert werden?? also $array = new array() oder so ähnlich. oder verstehe ich dich jetzt falsch??

mfg godlike P
Bitte warten ..
Mitglied: tob1
15.10.2006 um 15:11 Uhr
function array_match($needle, $haystack) {

foreach($haystack as $key => $value) {

if (eregi($needle, $value)) return $key;

}

return false;

}

hab mich nochmal umgehört und selber eine suche geschrieben?!
Bitte warten ..
Mitglied: blubb
16.10.2006 um 16:24 Uhr
hallo,

sorry kenn mich in php ni sooo gut aus, aber
muss ein array in php ni erst als array
initialisiert werden?? also $array = new
array()
oder so ähnlich. oder verstehe
ich dich jetzt falsch??

mfg godlike P

ne, das ist nur in basic oder ähnlichen so. ;) edit: new hat in PHP auch eine ganz andere Bedeutung, das erzeugt eine neue Instanz einer Klasse, siehe http://de2.php.net/class


Die 0 kommt wohl daher, dass " PROZESSOR " in der ersten Zeile der txtdatei steht, deshalb also den Index 0 hat.

"$cpu_i = array_search(" PROZESSOR ", $array); "
danach ist $cpu_i == 0.

"if($cpu_i != false)"
das gleiche mit !== und es könnte klappen.

file() sollte eigentlich gehen, sicher, dass $filename richtig ist? Zum Debuggen kann error_reporting(E_ALL) auch nicht schaden. ;)
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
PDF Datei umbennen aus TXT File ?
gelöst Frage von BotpennerBatch & Shell18 Kommentare

Hi, ich habe folgendes Problem. Ich besitze mehrere PDF-Dateien. Diese haben aktuell als Dateinamen eine belibige 6 Stellige Nummer. ...

Batch & Shell

Welche Codierung für txt files um in einer batch Datei richtig aufgerufen werden zu können?

Frage von patme1Batch & Shell3 Kommentare

Hi! Ich habe eine txt Datei, welche ich in einer batch file einlesen möchte. In dieser sind Sonderzeichen, wie ...

Sonstige Systeme

Daten aus txt-Files sammeln

gelöst Frage von MegaGigaSonstige Systeme16 Kommentare

Moin :-) Erstmal: Ich habe kein gescheites Unterforum dafür gefunden, falls ihr ein besseres findet bin ich froh darum ...

Batch & Shell

Txt-File splitten

gelöst Frage von apex.predator24Batch & Shell5 Kommentare

Hallo Community Ich bräuchte eure Hilfe. Folgendes: wir müssen wir einen Kunden eine Batch-Datei oder PowerShell erstellen, welche eine ...

Neue Wissensbeiträge
Utilities
Teamviewer 14 Verbindungsprobleme mit Proxy
Tipp von PeterleB vor 1 TagUtilities

Nach dem Umstieg von Version 13 auf 14 wollte sich TV nicht mehr mit dem Netz verbinden, ignorierte offenbar ...

Administrator.de Feedback
Unsere Datenbank wurde umgestellt
Information von Frank vor 1 TagAdministrator.de Feedback5 Kommentare

Hallo User, ich habe in der Nacht unsere Datenbank umgestellt. D.h. neue Version (MySQL 8) und andere Örtlichkeit. Sollte ...

Sonstige Systeme
Es war einmal ein BeOS - Wer erinnert sich noch?
Information von BassFishFox vor 3 TagenSonstige Systeme8 Kommentare

Hallo, Bin gerade ueber Haiku gestolpert, von dessen Existenz als "Nachfolger des BeOS" ich wusste nur mich nie wirklich ...

Datenschutz

Microsoft und DSGVO - ob das wohl jemals klappt (Probleme beim Datenabfluss für Office Pro Plus)?

Tipp von VGem-e vor 4 TagenDatenschutz5 Kommentare

Servus Kollegen, siehe Aber wer setzt schon MS Office Pro Plus ein? Wie dann der Stand beim "normalen" MS ...

Heiß diskutierte Inhalte
Windows 10
Programm unter Windows 10 automatisch mit administrativen Rechten starten
Frage von GrafmulderWindows 1021 Kommentare

Hallo zusammen! Zur Situation: Ich benutze Windows 10 Pro für Workstations (Build 1803) mit zwei Konten. Einem Administratorkonto und ...

Vmware
Gebrauchten ESXi- Server verkaufen: Festplatten DSGVO-konform löschen?
Frage von l.scheperVmware18 Kommentare

Hallo, wir möchten einen gebrauchten FUJITSU Server verkaufen. Auf dieser Maschine ist noch ein installiertes ESXi 5.1 und ne ...

LAN, WAN, Wireless
Empfehlung Powerline Adapter
Frage von AgilolfingerLAN, WAN, Wireless16 Kommentare

Hallo Zusammen, ich brauche eine Empfehlung von euch. Ich möchte in einem privaten Haushalt eine Powerline Lösung einrichten. Allerdings ...

Router & Routing
Dediziertes ISP -Routing
gelöst Frage von niLuxxRouter & Routing13 Kommentare

Liebe Community, Ich hätte eine kurze Frage an euch. Durch verschiedene Umstände kann es nun sein, dass sich zwei ...