php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 12-06-2007, 00:13
-=Taipan=-
 Junior Member
Links : Onlinestatus : -=Taipan=- ist offline
Registriert seit: May 2003
Ort: Heidelberg
Beiträge: 60
-=Taipan=- ist zur Zeit noch ein unbeschriebenes Blatt
Standard Sonderzeichen bzw. Umlaute Anpassen?!

Hallo,

ich möchte umlaute wie z.B. ü,ö,ä in der URL automatisch ändern lassen. Habe mir deshalb folgende Code-Schnipsel zusammengebastelt.

PHP-Code:
function plaintext($str) {
        
$str=strtolower($str);
        
$occs = Array(','' ''>''<''?''.''"''&#039'';''#' ,'&amp','/','=','-','+',':','@','!');
        
$reps = Array('_''_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_');
        
$str str_replace($occs,$reps,$str);
        
$arr explode("_",$str);
        foreach(
$arr as $key => $val) {
            if(
trim($val) == "")
                unset(
$arr[$key]);
        }
        
$str implode("-",$arr);
        return 
$str;
    }
    
   function 
key_to_file($key_trans) {
    
// Umlaute ersetzen:
    
$umlaute = ARRAY("ä","ö","ü");
    
$ersetzen = ARRAY("ae","oe","ue");
    
$key_trans str_replace($umlaute,$ersetzen,$key_trans);
    
// Sonderzeichen mit LZ ersetzen:
    
$key_trans preg_replace('%[^a-z0-9]%siU',' ',$key_trans);
    
// Leerzeichen mit "-" ersetzen:
    
$key_trans preg_replace('%( ){1,}%','-',$key_trans);
    return (
$key_trans);
    } 
Leider funkt das ganze nicht so, wie es sein sollte.

Für Konstruktive Antworten währe ich sehr dankbar.

Gruss
Mit Zitat antworten
  #2 (permalink)  
Alt 12-06-2007, 00:36
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

url_encode()

Zitat:
Original geschrieben von -=Taipan=-
Für Konstruktive Antworten währe ich sehr dankbar.
und ich für eine konstruktive problembeschreibung.
Mit Zitat antworten
  #3 (permalink)  
Alt 12-06-2007, 01:01
-=Taipan=-
 Junior Member
Links : Onlinestatus : -=Taipan=- ist offline
Registriert seit: May 2003
Ort: Heidelberg
Beiträge: 60
-=Taipan=- ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi penizillin!

Wenn ich aktuelle News auf meiner Seite veröffentliche, wird dies zugleich auch als URL verwendet. Deshalb möchte ich die Umlaute in der URL mit der Funktion key_to_file erzetzen lassen.

Bsp.
ich_bin_ein_url_ü ber_germany.html erstzen mit -> ich_bin_ein_url_ue ber_germany.html
Mit Zitat antworten
  #4 (permalink)  
Alt 12-06-2007, 01:51
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

und das problem?
Mit Zitat antworten
  #5 (permalink)  
Alt 12-06-2007, 02:52
-=Taipan=-
 Junior Member
Links : Onlinestatus : -=Taipan=- ist offline
Registriert seit: May 2003
Ort: Heidelberg
Beiträge: 60
-=Taipan=- ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das Problem: Es funktioniert nicht. Die Umlaute im URL bleibt dasselbe? Sprich "ü" und nicht "ue" oder "ä" nicht "ae" usw.

Geändert von -=Taipan=- (12-06-2007 um 02:54 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 12-06-2007, 07:50
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

und wie benutzst du die funktion?
Mit Zitat antworten
  #7 (permalink)  
Alt 12-06-2007, 12:13
Husti
 Junior Member
Links : Onlinestatus : Husti ist offline
Registriert seit: Jan 2003
Ort: Fischkoppland
Beiträge: 130
Husti ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe hiermit gute Erfahrungen gemacht
PHP-Code:
function str2url(&$needle){
    
$search =  array("ä""Ä""ü""Ü""ö""Ö""ß");
    
$replace = array("ae""ae""ue""ue""oe""o""ss");
    
$needle=str_replace($search$replace$needle);
    
$needle=urlencode($needle);

nur als Denkanstoß zum Erweitern und Anpassen
__________________
Und ist man alt wie ein Kuh, lernt man immer noch dazu.
THX, LOL, ROFL & Co. -> Netzjargon auf Wikipedia
Mit Zitat antworten
  #8 (permalink)  
Alt 12-06-2007, 13:00
-=Taipan=-
 Junior Member
Links : Onlinestatus : -=Taipan=- ist offline
Registriert seit: May 2003
Ort: Heidelberg
Beiträge: 60
-=Taipan=- ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
und wie benutzst du die funktion?
So: Aber das scheint auch nicht die Lösung zu sein
PHP-Code:
function plaintext($str) {
        
$str=strtolower($str);
        
$occs = Array(','' ''>''<''?''.''"''&#039'';''#' ,'&amp','/','=','-','+',':','@','!');
        
$search =  array("ä""Ä""ü""Ü""ö""Ö""ß");
        
$replace = array("ae""ae""ue""ue""oe""o""ss");
        
$reps = Array('_''_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_');
        
$str str_replace($occs,$search,$replace,$reps,$str);
        
$str urlencode($str);
        
$arr explode("_",$str);
        foreach(
$arr as $key => $val) {
            if(
trim($val) == "")
                unset(
$arr[$key]);
        }
        
$str implode("-",$arr);
        return 
$str;
    } 
Danke Husti für die Denkansatz.
Mit Zitat antworten
  #9 (permalink)  
Alt 12-06-2007, 13:04
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du rufst key_to_file nirgendwo auf. du machst nirgendwo testausgaben. du sagst nicht, _was_ nicht funktioniert. wie soll man dir helfen?

husti hat es schon vorgemacht:
PHP-Code:
$s 'bär';
echo 
str_replace(array('ä'), array('ae'), $s); 
Mit Zitat antworten
  #10 (permalink)  
Alt 12-06-2007, 13:27
Husti
 Junior Member
Links : Onlinestatus : Husti ist offline
Registriert seit: Jan 2003
Ort: Fischkoppland
Beiträge: 130
Husti ist zur Zeit noch ein unbeschriebenes Blatt
Standard

(the one and only) PHP-Handbuch sagt:
Zitat:
mixed str_replace ( mixed search, mixed replace, mixed subject )
Diese Funktion ersetzt alle Vorkommen von search innerhalb der Zeichenkette subject durch den String replace.
Bei dir
PHP-Code:
$str str_replace($occs,$search,$replace,$reps,$str); 
evtl. zuviele Argumente?
__________________
Und ist man alt wie ein Kuh, lernt man immer noch dazu.
THX, LOL, ROFL & Co. -> Netzjargon auf Wikipedia
Mit Zitat antworten
  #11 (permalink)  
Alt 12-06-2007, 13:44
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
evtl. zuviele Argumente?
Sicher und error_reporting() nicht auf höchster Stufe und/oder display_error auf 0
Mit Zitat antworten
  #12 (permalink)  
Alt 12-06-2007, 14:16
-=Taipan=-
 Junior Member
Links : Onlinestatus : -=Taipan=- ist offline
Registriert seit: May 2003
Ort: Heidelberg
Beiträge: 60
-=Taipan=- ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Verdammt! Es will einfach nicht funktionieren
Ich habe die Argumente wieder auf 3 reduziert und es so gemacht wie du es vorgeschlagen hast. Dennoch will es einfach nicht funken

PHP-Code:
    function plaintext($str) {
        
$str=strtolower($str);
        
$occs = Array(','' ''>''<''?''.''"''&#039'';''#' ,'&amp','/','=','-','+',':','@','!');
        
$reps = Array('_''_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_');
        
$search 'bär';
        echo 
str_replace(array('ä''Ä''ü''Ü''ö''Ö''ß'), array('ae''ae''ue''ue''oe''o''ss'), $search);
        
$str str_replace($occs,$reps,$str);
        
$arr explode("_",$str);
        foreach(
$arr as $key => $val) {
            if(
trim($val) == "")
                unset(
$arr[$key]);
        }
        
$str implode("-",$arr);
        return 
$str;
    } 
Mit Zitat antworten
  #13 (permalink)  
Alt 12-06-2007, 14:18
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du rufst die funktion gar nicht auf.
Mit Zitat antworten
  #14 (permalink)  
Alt 12-06-2007, 14:36
Husti
 Junior Member
Links : Onlinestatus : Husti ist offline
Registriert seit: Jan 2003
Ort: Fischkoppland
Beiträge: 130
Husti ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@jahlives
Rethorik=evtl. zuviele Argumente?

@Taipan
1. Tasse (Eis)Tee holen und dran nippen
2.1 "error_reporting(E_ALL);" an den Anfang deines Skriptes setzen + ausführen
2.2 Funktion + Aufruf der Funktion + Fehlermeldung am konkreten Beispiel posten (evtl. Code umbrechen)
3. streiche "es funkt nicht", "es funktioniert nicht" usw. und ersetze mit was soll und was ist
__________________
Und ist man alt wie ein Kuh, lernt man immer noch dazu.
THX, LOL, ROFL & Co. -> Netzjargon auf Wikipedia
Mit Zitat antworten
  #15 (permalink)  
Alt 12-06-2007, 14:39
-=Taipan=-
 Junior Member
Links : Onlinestatus : -=Taipan=- ist offline
Registriert seit: May 2003
Ort: Heidelberg
Beiträge: 60
-=Taipan=- ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja aber wie soll ich die Funktion abrufen! Mehr als 3 Argumente kann ich mit der variablen $str nicht ausgeben lassen (hab ihr doch gesagt). Sorry, aber mein PHP-Latein reicht für soviel aus

Hutsi du meinst bestimmt Jim Beam Flasche

Geändert von -=Taipan=- (12-06-2007 um 14:46 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


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

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

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

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


 

Aktuelle PHP Scripte

Plates native PHP template system

Plates ist ein natives PHP-Vorlagensystem, das schnell, einfach zu verwenden und einfach zu erweitern ist.

24.05.2019 Berni | Kategorie: PHP/ Framework
Maqetta Open Source  HTML5-Editor ansehen Maqetta Open Source HTML5-Editor

Einen WYSIWYG-Editor zur visuellen Erstellung von Userinterfaces in HTML5 (Drag-and-Drop)

13.05.2019 Berni | Kategorie: HTML5/ EDITOR
NodeBB

NodeBB ist eine Foren-Software auf NodeJS-Basis

13.05.2019 Berni | Kategorie: PHP/ Forum PHP Software
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:12 Uhr.