php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > Apps und PHP Script Gesuche
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


Apps und PHP Script Gesuche Hier könnt ihr nach PHP Skripten und Programmen fragen. Postet eure Wünsche

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 15-10-2009, 11:52
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Lightbulb [gelöst] deutsche Soundex-Implementation

Hallo zusammen,

bevor ich mich jetzt hinsetze und da selbst was programmiere, habe ich natürlich erstmal im Netz gesucht. Es gibt Gerüchte, dass "jemand das schonmal gemacht hat", aber nichts konkretes, wer das war oder wo man das findet.

Vielleicht weiß ja jemand von euch, wo man das finden kann, sei es als PHP- oder als MySQL-Funktion.

Viele Grüße,

Amica
Mit Zitat antworten
  #2 (permalink)  
Alt 15-10-2009, 11:57
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Futter für Google: "Kölner Phonetik php class"
__________________
Wir werden alle sterben
Mit Zitat antworten
  #3 (permalink)  
Alt 15-10-2009, 12:12
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo Combie,

dein Tipp war als Futter für Google zum Glück unbrauchbar, hat aber ein prima Emetikum abgegeben, weil Google es nicht einfach geschluckt, sondern mit noch mehr drumherum wieder ausgespuckt hat

Jedenfalls: Vielen Dank für den Tipp, ich teste es gerade aus. Das Regelwerk sieht dort ja sehr übersichtlich aus. Meine eigenen Vorüberlegungen waren da wahrscheinlich schon zu kompliziert gedacht.

Gruß,

Amica
Mit Zitat antworten
  #4 (permalink)  
Alt 15-10-2009, 12:25
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Egal aus welchem Löchlein es quoll, Hauptsache du konntest den Auswurf weiter verwerten.
__________________
Wir werden alle sterben
Mit Zitat antworten
  #5 (permalink)  
Alt 15-10-2009, 12:59
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Jep, ich hab es noch etwas meinen Bedürfnissen angepasst, weil am Telefon "s-" im Anlaut ähnlich wie "f-" (Sahne/Fahne) und "-er" im Auslaut ähnlich wie "-a" klingt (Scherz/Schatz; aller/Alah).

Schade, dass MySQL nativ kein preg_replace hat. Dann könnte ich es super leicht gleich dort implementieren.
Mit Zitat antworten
  #6 (permalink)  
Alt 15-10-2009, 13:03
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
Schade, dass MySQL nativ kein preg_replace hat. Dann könnte ich es super leicht gleich dort implementieren.
Was genau meinst du?

Reguläre Ausdrücke beherrscht MySQL doch zumindest in gewissem Umfang: http://dev.mysql.com/doc/refman/5.1/en/regexp.html
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 15-10-2009, 13:09
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Ja, das wird dich wohl mindestens eine zusätzliche Spalte kosten.
In sqlite würde es per UDF gehen.


Zitat:
Reguläre Ausdrücke beherrscht MySQL doch zumindest in gewissem Umfang
Da dann kein Index mehr genutzt werden kann, wird das eine "teure" Angelegenheit.
__________________
Wir werden alle sterben

Geändert von combie (15-10-2009 um 13:12 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 15-10-2009, 13:15
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von wahsaga Beitrag anzeigen
Was genau meinst du?

Reguläre Ausdrücke beherrscht MySQL doch zumindest in gewissem Umfang: MySQL :: MySQL 5.1 Reference Manual :: 11.4.2 Regular Expressions
Eigentlich hätte ich es präziser nicht sagen können: ich meine preg_replace. MySQL kann aber nur matchen.
Mit Zitat antworten
  #9 (permalink)  
Alt 31-10-2009, 04:14
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo zusammen,

nachdem ich das Thema eine Weile ruhen lassen musste, hier nun mein Ergebnis: Die Kölner Phonetik als Funktion für MySQL mit leichten Modifikationen, um Undeutlichkeiten am Telefon zu kompensieren:

Code:
delimiter |
drop function if exists strip_non_alpha|
drop function if exists soundex_de|

create function strip_non_alpha (string varchar(255))
	returns varchar(255) deterministic
	begin
		declare res varchar(255) default '';
		set string = lower(string);
		while char_length(string) > 0 do
			if string regexp '^[a-zäöüß]' then
				set res = concat(res, substr(string, 1, 1));
			end if;
			set string = substr(string, 2);
		end while;
		return res;
	end|

create function soundex_de (string varchar(255))
	returns varchar(255) deterministic
	begin
		declare res varchar(255) default '';
		declare tmp varchar(255) default '';
		declare i tinyint unsigned default 1;
		set string = strip_non_alpha(string);
		while char_length(string) > 0 do
			if string regexp '^[0-9]' then
				set res = concat(res, substr(string, 1, 1));
				set string = substr(string, 2);
			elseif string regexp '^[aeijouyäöüÄÖÜ]' then
				set res = concat(res, '0');
				set string = substr(string, 2);
			elseif string regexp '^ph' then
				set res = concat(res, '3');
				set string = substr(string, 3);
			elseif string regexp '^[bp]' then
				set res = concat(res, '1');
				set string = substr(string, 2);
			elseif string regexp '^[dt][csz]' then
				set res = concat(res, '8');
				set string = substr(string, 3);
			elseif string regexp '^[dt]' then
				set res = concat(res, '2');
				set string = substr(string, 2);
			elseif string regexp '^[fvw]' then
				set res = concat(res, '3');
				set string = substr(string, 2);
			elseif string regexp '^[gkq]' then
				set res = concat(res, '4');
				set string = substr(string, 2);
			elseif string regexp '^c[ahkloqrux]' then
				set res = concat(res, '4');
				set string = substr(string, 2);
			elseif string regexp '^[^sz]c[ahkloqrux]' then
				set string = concat(substr(string, 1, 1), '4', substr(string, 3));
			elseif string regexp '^[^ckq]x+' then
				set tmp = substr(string, 1, 1);
				set string = substr(string, 3);
				while substr(string, 1, 1) = 'x' do
					set string = substr(string, 2);
				end while;
				set string = concat(tmp, 48, string);
			elseif string regexp '^l' then
				set res = concat(res, '5');
				set string = substr(string, 2);
			elseif string regexp '^[mn]' then
				set res = concat(res, '6');
				set string = substr(string, 2);
			elseif string regexp '^r' then
				set res = concat(res, '7');
				set string = substr(string, 2);
			elseif string regexp '^[sz]c' then
				set string = concat(substr(string, 1, 1), '8', substr(string, 3));
			elseif string regexp '^[szß]' then
				set res = concat(res, '8');
				set string = substr(string, 2);
			elseif string regexp '^c[^ahkloqrux]?' then
				set res = concat(res, '8');
				set string = substr(string, 2);
			elseif string regexp '^[ckq]x' then
				set string = concat(substr(string, 1, 1), '8', substr(string, 3));
			else
				set string = substr(string, 2);
			end if;
		end while;
		set res = replace(res, '070', '@');
		set res = replace(res, '07', '0');
		set res = replace(res, '@', '070'); # improved handling of silent r after vowels
		set res = replace(res, '3', '8'); # for phone calls, where F sounds like S
		set tmp = '@';
		while i <= char_length(res) do
			if substr(res, i, 1) = tmp then
				set res = concat(substr(res, 1, i - 1), substr(res, i + 1));
			else
				set tmp = substr(res, i, 1);
				set i = i + 1;
			end if;
			
		end while;
		set res = concat(substr(res, 1, 1), replace(substr(res, 2), '0', ''));
		return res;
	end|

delimiter ;
Gruß,

Amica

Geändert von AmicaNoctis (31-10-2009 um 04:17 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 10-11-2009, 00:04
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Sollte das nicht eher in die Code-Schnipsel?
Mit Zitat antworten
  #11 (permalink)  
Alt 22-01-2010, 07:09
TriphunEM
 Registrierter Benutzer
Links : Onlinestatus : TriphunEM ist offline
Registriert seit: Jun 2003
Beiträge: 549
TriphunEM ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wie implementier ich das in MySQL, so dass es mir im Query zur Verfügung steht?

Danke
Mit Zitat antworten
  #12 (permalink)  
Alt 22-01-2010, 07:14
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Du willst es implementieren? Ich dachte, das hätte ich schon gemacht? Oder willst du es nur importieren?:

Du wechselst zu dem Schema (bzw. "Datenbank" in MySQL), in dem es zur Verfügung stehen soll und importierst einfach den gesamten Code. Der legt es als Funktion an und die steht dann immer zur Verfügung. Aufgerufen wird es dann z. B. so:

Code:
select soundex_de('Meyer');
select soundex_de('Mayer') = soundex_de('Maja');
Einen "sounds like"-Shortcut gibt es natürlich nicht, dafür müsste man den Parser umschreiben. Aber man kann natürlich alles wie im zweiten Beispiel vergleichen.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!

Geändert von AmicaNoctis (22-01-2010 um 07:31 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
ACL-Implementation PHP-Desaster Apps und PHP Script Gesuche 4 07-07-2009 22:37
diff Implementation tontechniker PHP Developer Forum 9 02-09-2007 12:48
Schnellste Implementation von __autoload ( ) tontechniker PHP Developer Forum 5 10-05-2007 20:20
SugarCRM Implementation ganjamann Jobgesuche 0 18-04-2005 17:04
Frage zu soundex() mac_bobby PHP Developer Forum 9 21-12-2002 00:05

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:13 Uhr.