Avatar billede brislingf Nybegynder
29. december 2006 - 10:41 Der er 1 kommentar

String splitter..

Hejsa alle samme og glædelig jul.

Jeg sidder med et problem.
Jeg har en webserver med php og mysql som vi bruger til at logge alt det udstyr som vi udfaser. Herfra får vi så et udtræk af maskiner configurationen, men da vi ved ældre maskiner ikke altid kan få alle detaljerne ud vil "rapporten" være forskellig fra maskine til maskine. Herfor vil det være rart at kunne tage de informationer som vi kan trække ud af maskinerne og indsætte i databasen. Jeg har kigget lidt på string splitter i php5 men er rendt tør for ideer.
Jeg har postet forskellige rapporter neden for.

Stor udgave af rapporten
"UDFASNINGS SYSTEM V.1"                 
                                             
"Custom Defined Information"                 
"Location","lokation"
                                             
"Model Number","OEM"                     
"Machine",""                       
"SERIAL","report"                         
"BOARD",""                           
"BIOS",""                             
"BIOSBASE",""                     
"BIOSVER",""                       
"BIOSLANG",""                     
"H8",""                                 
"H8VER",""                           
                                             
"Disk","ALL"                             
"SDDLVL","Medium"                         
"LEVEL","2"                           

"Total Number of drives detected","1"
"ERROR: HD(1)","INT 13  AH=25  Cannot identify disk."
"Start Time:","September 24, 2006: 09:58:32"
"End Time:","September 24, 2006: 10:05:13"
"SDD","Completed"                           
                                             
"SCAN INFORMATION"                           
"SYSTEM SCAN v1.0 (RDM v4.11) "
"RDSCAN005I Default scan running"
"TWG_COMPONENT_ID.MANUFACTURER.0"," "
"TWG_COMPONENT_ID.PRODUCT.0"," "
"TWG_COMPONENT_ID.VERSION.0"," "
"TWG_COMPONENT_ID.SERIAL_NUMBER.0"," "
"TWG_COMPONENT_ID.UUID.0",""
"TWG_SYSTEM_BIOS.BIOS_INDEX.0","0"
"TWG_SYSTEM_BIOS.BIOS_MANUFACTURER.0","Award Software International, I"
"TWG_SYSTEM_BIOS.BIOS_VERSION.0","4.51 PG"
"TWG_SYSTEM_BIOS.BIOS_RELEASE_DATE.0","1997-10-20"
"TWG_SYSTEM_BIOS.BIOS_SM_VERSION.0","2.0"
"UMS_FIRMWARE.Name.0","Default System BIOS"
"UMS_FIRMWARE.Manufacturer.0","Award Software International, I"
"UMS_FIRMWARE.BuildNumber.0","4.51 PG"
"TWG_PROCESSOR.PROCESSOR_INDEX.0","0"
"TWG_PROCESSOR.PROCESSOR_TYPE.0","CPU"
"TWG_PROCESSOR.FAMILY.0","PENTIUM"
"TWG_PROCESSOR.VERSION.0","Pentium"
"TWG_PROCESSOR.CURRENT_SPEED.0","200"
"TWG_PROCESSOR.MAXIMUM_SPEED.0","266"
"TWG_INSTALLED_MEMORY.PHYSICAL_MEMORY_KB.0","131072"
"TWG_DISK.DISK_TYPE.0","HARDDISK"
"TWG_DISK.DISK_INDEX.0","0"
"TWG_DISK.DISK_TOTAL_SIZE_KB.0","3161025"
"UMS_SRCONTROLLER.*.1","DELETE"
"UMS_SRLOGICALDRIVE.*.1","DELETE"
"UMS_SRDISKDRIVES.*.1","DELETE"
                                 
Her er en anden rapport
"UDFASNINGS SYSTEM V.1"                 
                                             
"Custom Defined Information"                 
"Location","location"
                                             
"Model Number","OEM"                     
"Machine",""                       
"SERIAL","report"                         
"BOARD",""                           
"BIOS",""                             
"BIOSBASE",""                     
"BIOSVER",""                       
"BIOSLANG",""                     
"H8",""                                 
"H8VER",""                           
                                             
"Disk","ALL"                             
"SDDLVL","Medium"                         
"LEVEL","2"                           

"Total Number of drives detected","1"
"ERROR: HD(1)","INT 13  AH=25  Cannot identify disk."
"Start Time:","March 04, 2006: 08:01:39"
"End Time:","March 04, 2006: 08:07:33"
"SDD","Completed"                           
                                             
"SCAN INFORMATION"                           
"SYSTEM SCAN v1.0 (RDM v4.11) "
"RDSCAN005I Default scan running"
"RDSCAN008E Failed to retrieve Bios info"
"RDSCAN010E Failed to retrieve processor info"
"TWG_COMPONENT_ID.UUID.0",""
"TWG_INSTALLED_MEMORY.PHYSICAL_MEMORY_KB.0","49152"
"TWG_DISK.DISK_TYPE.0","HARDDISK"
"TWG_DISK.DISK_INDEX.0","0"
"TWG_DISK.DISK_TOTAL_SIZE_KB.0","1249920"
"UMS_SRCONTROLLER.*.1","DELETE"
"UMS_SRLOGICALDRIVE.*.1","DELETE"
"UMS_SRDISKDRIVES.*.1","DELETE"

Her er den helt korte version
"UDFASNINGS SYSTEM V.1"                 
                                             
"Custom Defined Information"                 
"Location","location"
                                             
"Model Number","OEM"                     
"Machine",""                       
"SERIAL","report"                         
"BOARD",""                           
"BIOS",""                             
"BIOSBASE",""                     
"BIOSVER",""                       
"BIOSLANG",""                     
"H8",""                                 
"H8VER",""                           
                                             
"Disk","ALL"                             
"SDDLVL","Medium"                         
"LEVEL","2"                           

"Total Number of drives detected","1"
"ERROR: HD(1)","INT 13  AH=25  Cannot identify disk."
"Start Time:","September 24, 2006: 12:04:56"
"End Time:","September 24, 2006: 12:10:09"
"SDD","Completed"                           
                                             
"SCAN INFORMATION"                           
"SYSTEM SCAN v1.0 (RDM v4.11) "
"RDSCAN005I Default scan running"
"RDSCAN008E Failed to retrieve Bios info"
"RDSCAN010E Failed to retrieve processor info"
"TWG_COMPONENT_ID.UUID.0",""
"TWG_INSTALLED_MEMORY.PHYSICAL_MEMORY_KB.0","65536"
"TWG_DISK.DISK_TYPE.0","HARDDISK"
"TWG_DISK.DISK_INDEX.0","0"
"TWG_DISK.DISK_TOTAL_SIZE_KB.0","2062368"
"UMS_SRCONTROLLER.*.1","DELETE"
"UMS_SRLOGICALDRIVE.*.1","DELETE"
"UMS_SRDISKDRIVES.*.1","DELETE"


Jeg vil gerne at jeg kan gå ind og hente dataene  fra f.eks. "TWG_DISK.DISK_TOTAL_SIZE_KB." og indsætte  "2062368" i min database som størrelsen af harddisken. Eller sagt på en anden måde jeg vil gerne kunne hente det fra rapporten som jeg skal bruge og lade resten flyde ud..
Avatar billede coderdk Praktikant
29. december 2006 - 15:13 #1
Prøv med fopen/fgetcsv:

if ( $fp = fopen( "rapport.txt", "r" ) )
{
  while ( $data = fgetcsv( $fp, 1024, ',', '"' ) )
  {
      if ( strpos( $data[0], "TWG_DISK.DISK_TOTAL_SIZE_KB." ) !== false )
      {
          echo "Interessant: " . $data[1];
      }
  }
  fclose( $fp );
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging