SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 25.02.2009, 12:11:28
mgutt mgutt ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 65
Aus String eine Unique ID produzieren

Hi,

wie könnte man aus einem String eine möglichst kleine Unique ID (nur Integer) basteln?

Meine bisherigen (gescheiterten) Versuche:
Code:
function cid($str) {
	$id = 0
	foreach (str_split($str) as $chr) {
		$id += ord($chr);
	}
	return $id;
}
Code:
function cid($str) {
	$id = strlen($str);
	foreach (str_split($str) as $chr) {
		$id += ord($chr);
	}
	return $id;
}
Code:
function cid($str) {
	$id = strlen($str);
	foreach (str_split($str) as $key => $chr) {
		$id += ord($chr) + $key;
	}
	return $id;
}
Code:
function cid($str) {
	$id = 0;
	foreach (str_split($str) as $key => $chr) {
		$id += ord($chr) + $key;
	}
	return intval($id .= sprintf('%03d', strlen($str)));
}
Mein String ist maximal 255 Zeichen lang, daher die Idee mit "03d" ;)

Gruß
Marc
Honda Forum

Geändert von mgutt (03.06.2009 um 13:23:39 Uhr)
Mit Zitat antworten
  #2  
Alt 25.02.2009, 15:36:19
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Aus String eine Unique ID produzieren

Zitat:
Zitat von mgutt Beitrag anzeigen
wie könnte man aus einem String eine möglichst kleine Unique ID (nur Integer) basteln?
das widerspricht sich ein wenig: je kürzer die id, desto wahrscheinlicher, dass sie nicht unique ist. üblicherweise wird eine unique id so erzeugt:

PHP-Code:
$unique md5uniqidmt_rand( ), TRUE ) ); 
falls du auf etwas anderes hinaus wolltest, bitte nochmal etwas deutlicher erklären.

cx
Mit Zitat antworten
  #3  
Alt 25.02.2009, 16:14:59
mgutt mgutt ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 65
AW: Aus String eine Unique ID produzieren

Ich will genau das was ich geschrieben habe "Aus String eine Unique ID produzieren". Du machst einfach einen Random-String. Das ist weder eine ID, noch ist sie einem bestimmten String zugeordnet.

Im Endeffekt will ich einen Alias zu md5() nur, dass das Ergebnis ein reiner Integer ist.

Wenn ich einen Random-String wollte, würde ich nicht im Fortgeschritten-Bereich posten ;)

Zitat:
das widerspricht sich ein wenig: je kürzer die id, desto wahrscheinlicher, dass sie nicht unique ist.
Das stimmt natürlich. Nur die Lösung wäre mir zu lang:

Code:
function cid($str) {
	$id = '';
	foreach (str_split($str) as $chr) {
		$id .= sprintf('%03d', ord($chr));
	}
	return intval($id);
}
Das wäre Unique, aber bei 255 Zeichen, würde die Zahl 765 Stellen umfassen.

Mein String umfasst normale Worte. Vielleicht kann ich über typische Buchstabenkombinationen eine kürzere ID generieren?

Geändert von mgutt (25.02.2009 um 16:22:16 Uhr)
Mit Zitat antworten
  #4  
Alt 25.02.2009, 16:26:57
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Aus String eine Unique ID produzieren

Zitat:
Zitat von mgutt Beitrag anzeigen
Wenn ich einen Random-String wollte, würde ich nicht im Fortgeschritten-Bereich posten ;)
sorry - der unterschied zwischen grundlagen und fortgeschritten ist nicht jedem user so klar.

eine lösung / idee kann ich dir leider nicht anbieten.

cx

Geändert von cortex (25.02.2009 um 16:28:39 Uhr)
Mit Zitat antworten
  #5  
Alt 25.02.2009, 16:51:17
mgutt mgutt ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 65
AW: Aus String eine Unique ID produzieren

Also ich komme bisher auf das:
Code:
function cid($str) {
	$id = '';
	foreach (str_split(strtoupper($str)) as $chr) {
		$id .= sprintf('%02d', ord($chr));
	}
	return $id;
}
D.h. ich unterscheide nicht mehr zwischen Groß- und Kleinschreibung und gebe nur noch 2-stellige Werte der Ascii-Tabelle aus.

Damit bin ich nun bei einem Integer mit max. 510 Stellen. Irgendwie fällt mir kein Mittel ein, womit ich das ganze noch komprimieren könnte. Ich spiele mal ein bisschen mit einer Quersumme und der Stringlänge herum. Vielleicht kommt dabei was herum.

EDIT:
Tja, war wohl doch der falsche Bereich :wall:

Hier die Lösung ;)
Code:
function cid($str) {
	return sprintf('%u', crc32($str));
}

Geändert von mgutt (25.02.2009 um 17:10:51 Uhr)
Mit Zitat antworten
  #6  
Alt 28.02.2009, 00:14:55
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
AW: Aus String eine Unique ID produzieren

Solange du keinen String mit dem gleichen Inhalt bekommst funktioniert deine Funktion.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
string wird per Post anders ausgegeben zhamoran PHP Grundlagen 2 07.09.2008 20:38:24
Nächste Hilfe gesucht (in Xml suchen) Piwi999 PHP Grundlagen 4 25.03.2008 14:50:15
Wert im String suchen... DanielEXQ PHP für Fortgeschrittene und Experten 8 26.03.2003 11:10:23
HTML und PHP in String korrekt ausgeben/verarbeiten LukeDogg PHP für Fortgeschrittene und Experten 5 22.03.2003 14:11:47
String in Array umwandeln.... DeMaephis PHP für Fortgeschrittene und Experten 7 19.05.2002 20:34:28


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:18:21 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt