php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.02.2006, 11:59  
Gast
 
Beiträge: n/a
Standard String nach bestimmten Zeichen durchsuchen

Hallo!
Ich habe folgendes Problem: Ich würde gerne einen String auf das Vorkommen von Sonderzeichen ausser - _ und Leerzeichen durchsuchen. Die anderen Sonderzeichen sollen gelöscht werden.
Dafür habe ich schonmal einen regulären Ausdruck gebastelt, der aber nicht das tut, was er soll( so wird z.B. bei Eingabe von "TEST" die If-Abfrage als true ausgewertet).
Hier der Code:

Code:
<?php
if (($_POST['Taste_'.$i.'_Name']!="") && (!eregi("[a-z|0-9|\_|\-]{1,12} ",$Index[$i][4]))){
                   echo("
 Der Tastenname der Taste ".$Index[$i][0]." darf nur aus Buchstaben, Zahlen, Leerzeichen und Bindestrichen bestehen!
Die übrigen Zeichen werden entfernt!

");
                   $Index[$i][4]=preg_replace('![0-9|a-z|\-|_|' ']!', '', $Index[$i][4]);
               }
?>
Habe auch schonmal mit strrpos oder ctype experimentiert, aber leider erfolglos.
Hat jemand von Euch eine Idee, wie ich das lösen könnte?

Danke im voraus
Uwinho
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.02.2006, 12:15  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Warum sollte TEST auch FALSE liefern, es kommt ja kein Sonderzeichen drin vor...

Außerdem, willst du testen oder ersetzen? Zusätzlich testen kannst du auch damit, in dem du Eingabe mit Ausgabe nach Ersetzen vergleichst.
Zergling-new ist offline  
Alt 01.02.2006, 12:25  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

nutzt lieber die perl kompatiblen RegEx anstatt ereg die wirds eh in PHP6 nicht mehr geben
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
HStev ist offline  
Alt 01.02.2006, 12:56  
Gast
 
Beiträge: n/a
Standard

@Zergling:
in der if-Abfrage steht ja !eregi... -> sollte bei "TEST" false geben, oder hab ich da nen Logikfehler?
Ich würde im 1. Schritt gerne Abfragen und danach die "verbotenen" Tasten aus dem String rauslöschen.

Also z.B.:
1)Eingabe: Dr.$ll%er-Lüden(sc)heid (ja, ich weiss, >12 Zeichen... )
2)Ausgabe, dass String nicht gültig
3)String umwandeln in Dr Müller-Lüdenscheid

Um die Eingabe mit der Ausgabe nach dem Ersetzen zu vergleichen, muss ich ja zuerstmal wissen, was ich ersetzen soll....
 
Alt 01.02.2006, 13:02  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

PHP-Code:
<?php
$cleanedName 
preg_replace("/[^a-z_]/i"""$name); // whilelist
if ($cleanedName != $name) {
  
printf("Die Eingabe '%s' enthält ungültige Zeichen. Sie wurde umgewandelt in '%s'.",
    
$name$cleanedName);
}
?>
Wie das mit Umlauten läuft weiß ich grade nicht. Vielleicht kannste die einfach mit reinhängen (am besten ausprobieren).
Zergling-new ist offline  
Alt 01.02.2006, 13:03  
Gast
 
Beiträge: n/a
Standard

Danke für die prompte Antwort. Werd ich gleich mal testen!
 
Alt 01.02.2006, 13:40  
Gast
 
Beiträge: n/a
Standard

Hallo nochmal!
Mit
PHP-Code:
<?php
//...
$Index[$i][4] = preg_replace("/[^a-z09 üäöß_-]+/i"""$Index[$i][4]); 
//...
?>
macht´s genau das, was ich möchte!
Vielen Dank für die Hilfe!
 
Alt 01.02.2006, 13:43  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

0-9
Zergling-new ist offline  
Alt 01.02.2006, 13:55  
Gast
 
Beiträge: n/a
Standard

Achja, hab ich übersehen, thx
 
Alt 01.02.2006, 17:09  
Gast
 
Beiträge: n/a
Standard

Zitat:
$Index[$i][4] = preg_replace("/[^a-z09 üäöß_-]+/i", "", $Index[$i][4]);
Nicht alle Systeme beachten die Groß- und Kleinschreibung bei Umlauten mit Modifer i nicht !
Für alle Fälle würde ich noch ÖÄÜ mit eintragen.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
String zwischen 1. und 2. Zeichen teilen BartTheDevil89 PHP Tipps 2008 5 29.05.2008 19:01
String durchsuchen - Spam Problem mit Gästebuch havok PHP Tipps 2006 23 15.03.2006 18:44
Zeichen aus einem String kopieren PHP Tipps 2006 6 22.01.2006 15:54
string splitten und nach bestimmten wörtern durchsuchen PHP Tipps 2005-2 5 11.09.2005 13:05
Alle Felder nach String durchsuchen Jacks Rache Datenbanken 6 08.08.2005 09:46
Alle Spalten nach String durchsuchen Jacks Rache Datenbanken 0 05.08.2005 09:41
Text zwischen 2 Zeichen in einen Text zu string machen Blank PHP Tipps 2005-2 8 30.07.2005 00:38
array nach bestimmten string durchsuchen und element löschen PHP Tipps 2005-2 4 21.07.2005 19:51
[Erledigt] String nach best. Zeichen durchsuchen PHP-Fortgeschrittene 10 19.07.2005 19:21
Zeilenumbruch nach einer bestimmten Anzahl von Zeichen Beitragsarchiv 3 05.07.2005 13:59
ASCII - Zeichen in String einbinden faux PHP Tipps 2005 10 28.05.2005 18:29
bestimmten string aus spalte auslesen aircrash PHP Tipps 2005 3 01.02.2005 18:07
String zwischen 2 bestimmten Zeichenketten auslesen? PHP Tipps 2004-2 1 05.12.2004 12:22
nicht erlaubte Zeichen im SQL - String Datenbanken 0 16.10.2004 11:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php nach zeichen suchen, c# string nach zeichen durchsuchen, http://www.php.de/php-tipps-2006/36544-string-nach-bestimmten-zeichen-durchsuchen.html, nach bestimmten zeichen suchen php, php nach bestimmten zeichen suchen, nach zeichen suchen php, string durchsuchen php, nach einem bestimmten zeichen suchen php, string nach umlauten durchsuchen, vb.net string durchsuchen, string durchsuchen c#, php string nach leerzeichen durchsuchen, c# string nach buchstaben durchsuchen, php nach einem zeichen suchen, c# string durchsuchen, c# text durchsuchen, php string nach umlauten durchsuchen, c# string nach wort durchsuchen, c# string nach bestimmten zeichen durchsuchen, string nach zeichen durchsuchen c#

Alle Zeitangaben in WEZ +1. Es ist jetzt 20:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.