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
GELÖST

Informationen aus Zeichenkette in PHP auslesen

Frage Entwicklung PHP

Mitglied: chrizz-at

chrizz-at (Level 1) - Jetzt verbinden

07.11.2008, aktualisiert 10.01.2009, 6524 Aufrufe, 9 Kommentare

Liebe leute! Ich muss aus der Zeichenkette: Client-2.0.1.1820-RC-32_Serial.exe
mittels PHP auslesen:

Name: Client
Release: RC oder Final
Version: 2.0.1.1820
Bit: 64 oder 32
Serial: Seriennummer (immer 25 zeichen) (Statt _Serial)

Wobei sich die Zeichen immer ändern können zb. 32 und 64 bit und RC und Final.. aber der Dateiname ist immer so aufgebaut. Der Serial hat immer 25 Zeichen.

Wenn sich die anzahl der punkte im dateinamen verändert soll abgebrochen werden.

Wer kann mir helfen?!

01.
$name = 'Client-2.0.1.1820-RC-32_Serial.exe'; 
02.
 
03.
 

und dann?! Bin ein blutiger anfänger das einzige was ich kenne ist strpos() Und strlen()..
Mitglied: kugelschreiber
07.11.2008 um 14:01 Uhr
Wie waere es mit ein paar mehr String-Funktionen:

Alle zu finden unter: www.php.net

Zu Deinem Beispiel:

01.
<? 
02.
$string = "Client-2.0.1.1820-RC-32_55555555.exe"
03.
$name = substr($string,0,strpos($string,"-")); 
04.
$pos_start 	= strpos($string,"-")+1; 
05.
$pos_ende = strrpos($string,"_"); 
06.
$version = substr($string,$pos_start,$pos_ende-$pos_start ); 
07.
$release = strstr($string, 'RC') ? "RC" : "Final"
08.
$bit = strstr($string, '64_') ? '64' : '32'
09.
$serial = substr($string,strpos($string,"_")+1,-4); 
10.
echo "name: ".$name."<br>"
11.
echo "version: ".$version."<br>"
12.
echo "release: ".$release."<br>"
13.
echo "bit: ".$bit."<br>"
14.
echo "serial: ".$serial."<br>"
15.
?>
Try it.
Ich habe keinen farbigen Editor hier, so bitte pruefe die Syntax auf richtige Schreibweise. Die verwendeten Funktionen sind alle auf php.net erklaert.Zum Beispiel: http://uk.php.net/manual/de/function.strripos.php

Gruss aus England Kuli
Bitte warten ..
Mitglied: chrizz-at
09.11.2008 um 15:35 Uhr
Ich danke dir für deine rasche Antwort Kuli! Ich werde es am Montag gleich ausprobieren!

Ich danke dir recht herzlich!

lg chris
Bitte warten ..
Mitglied: chrizz-at
10.11.2008 um 08:56 Uhr
Das Script bringt mir folgenden Fehler:

Fatal error: Function name must be a string in C:\xampp\htdocs\test\uploadFile.php on line 4

Bitte warten ..
Mitglied: kugelschreiber
10.11.2008 um 17:31 Uhr
Sorry Chrizz,

aber wie gesagt ich hatte oben gerade keinen ordentlichen Editor zur Hand.
Konnte das Script jetzt testen und bei mir hats gegeht.
Habe es oben gleich geändert und noch ein bisschen modifiziert.

Gruß und viel Spaß
Bitte warten ..
Mitglied: Enclave
11.11.2008 um 16:03 Uhr
Oder du machst es einfach mit Regulären Ausdrücken

01.
<?php 
02.
$string = "Client-2.0.1.1820-RC-32_Serial.exe"; 
03.
 
04.
if(!preg_match('~^Client-([0-9.]+)-([a-zA-Z]+)-([2-6]{2})_(.*)\.exe$~', $string, $einzeln)) 
05.
	die("Dumm gelaufen..."); 
06.
 
07.
echo $einzeln[1];	//*** 2.0.1.1820 
08.
echo $einzeln[2];	//*** RC 
09.
echo $einzeln[3];	//*** 32 
10.
echo $einzeln[4];	//*** SERIALSERIALSERIALSERIAL$  
11.
 
12.
?>
Hier das Ergebnis --> http://regexp-evaluator.de/evaluator/a89373ed619bb9accc47ff765eac7f29/# ...

Mit freundlichen Grüßen

Enclave
Bitte warten ..
Mitglied: kugelschreiber
11.11.2008 um 22:51 Uhr
Respekt.
Man(n) lernt eben nie aus und viele Wege führen ja nach Rom.
Allerdings habe ich noch eine Frage. Warum stehen nach der Prüfung mit preg_match() die Ergebnisse in einem Arrray?

Gruß Kuli
Bitte warten ..
Mitglied: Enclave
11.11.2008 um 22:57 Uhr
In regulären Ausdrücken kann man in Klammern eingeschlossene Bereiche zusammenfassen.
Und da es am einfachsten ist die in ein Array zu packen statt in viele einzelne Variablen gibt es einfach als dritten Parameter "Treffer". Diese werden dann in Reihenfolge ihres Auftretens in das Array geschrieben...

PHP Manuell

Mit freundlichen Grüßen

Enclave
Bitte warten ..
Mitglied: kugelschreiber
12.11.2008 um 07:13 Uhr
Sauber!

Sehr gute Arbeit! Nur die regulären Ausdrücke zu verstehen, dass man sie aus dem Kopf selber schreiben kann, ist ganz schon hart am Anfang.

Danke und scheen tach noch, wie man bei uns saacht.

Gruß Kuli
Bitte warten ..
Mitglied: chrizz-at
19.11.2008 um 17:05 Uhr
Hey leute! Ich bins nochmal!

Ich habe folgende aufgabe bekommen! (In den kommentaren steht was die funktion usw. machen muss..)

Ich komme aber dabei nicht weiter.. Hilfe!!



01.
<? 
02.
$filename = 'Client-2.0.1.1820-RC-64_Serial.exe'
03.
$fname = substr($filename, 0, -4); 
04.
 
05.
$bs = strpos($filename, '-'); 
06.
$us = strpos($filename, '_'); 
07.
$pt = strpos($filename, '.'); 
08.
 
09.
if ($us === true) { 
10.
	$serial		= substr($filename, $us+1, 9999); 
11.
	$filename	= substr($filename, 0, -4);		// filename = Client-2.0.1.1820-RC-64 
12.
13.
 
14.
if ($bs === false) {		// kein - im FileName 
15.
		$name	= $filename
16.
17.
 
18.
else if ($bs === true) // kommt auch - vor ->  
19.
	{  
20.
	$name		= substr($filename, 0, $bs); 
21.
	$filename	= substr($filename, $bs, 9000);	// Testen sonst mit length .... ist der Rest 
22.
	 
23.
	// hier ist Filename ohne name, ohne exe ohne serial 
24.
	 
25.
	$bs	= strpos($filename, '-');  // - suchen 
26.
	while ($bs === true) { 
27.
		$part = substr($filename, 0, $bs-1); 
28.
		$filename	= substr($filename, $bs+1, 9999); 
29.
		 
30.
		ProcessPart($part); 
31.
		 
32.
		$bs	= strpos($filename, '-');		// nächsten - suchen 
33.
34.
	// am schluss steht der letzte part in $filename drinnen 
35.
	ProcessPart($filename); 
36.
37.
 
38.
function ProcessPart($part) { 
39.
	global $release, $build, $bit
40.
	 
41.
	if (strpos($part, '.') === true) 
42.
43.
	$part = 'build'; // build 
44.
45.
	else if (strstr($part, '32') === true) 
46.
47.
	$part = '32'; // bit 
48.
49.
	else 
50.
51.
	$part = 'RC'; // release 
52.
53.
	 
54.
	// wenn . vorkommt -> build, sonst 32 oder 64 -> bit, sonst Release 
55.
56.
 
57.
echo $filename
58.
echo $part
59.
?>
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
PHP
gelöst Externe XML-Datei in PHP auslesen (18)

Frage von Akrosh zum Thema PHP ...

JavaScript
gelöst Dropdownfeld auslesen und mit AJAX und JS an PHP senden (7)

Frage von ITFlori zum Thema JavaScript ...

PHP
gelöst HTML Dropdownmenü auslesen und in PHP als Variable übergeben (35)

Frage von ITFlori zum Thema PHP ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

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

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...