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

Frage Entwicklung PHP

GELÖST

Informationen aus Zeichenkette in PHP auslesen

Mitglied: chrizz-at

chrizz-at (Level 1) - Jetzt verbinden

07.11.2008, aktualisiert 10.01.2009, 6560 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/# ...

Mfg

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

Mfg

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 ..
Ähnliche Inhalte
Batch & Shell
Unbekannte Zeichenkette aus txt mit Zeilenangabe auslesen
gelöst Frage von IForeverBatch & Shell4 Kommentare

Hallo Community :) Nach über 4 Stunden herum probieren habe ich es aufgegeben und muss hier um Rat bitten ...

Batch & Shell
Batch soll Informationen aus Logfiles auslesen
gelöst Frage von Eichhorn63Batch & Shell8 Kommentare

Hallo, Ich bin neu im Forum und habe folgende Frage: Aus mehreren, jeweils über 1000 Zeilen großen Logfiles sollen ...

Outlook & Mail
PS-Skript zum Auslesen von Informationen
gelöst Frage von 112TimoOutlook & Mail8 Kommentare

Hallo liebe Community, ich habe in meinem Praktikum die Aufgabe bekommen ein PowerShell-Skript zu erstellen, mit dem ich die ...

Server-Hardware
Windows SFP Informationen auslesen
Frage von 8digitServer-Hardware3 Kommentare

Hallo, ich stelle mich gerade irgendwie etwas dumm an und finde absolut nichts im Internet. Ich habe bei einem ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...

Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall9 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...