problemik_mam
7.10.2003, 16:42:31
Witam
Moze ktos pomoze, jak wyeliminowac ze zmiennej znaki typu "!@#>>{}[]"
Kombinowalem, ale nie bardzo obczajam o co chodzi w wyrazeniach regularnych, moje "cos":
$zmienna = ereg_replace('[[:punct:]]', '<>!@#$%^&*().,:[{} ', $zmienna);
z gory wielkie dzieki
Mozna tak:
[php:1:48d2dd24ac]$text = preg_replace( "/(!|@|#|>|{|}|[|])/", '', $text );[/php:1:48d2dd24ac]
lub bez regularnych:
[php:1:48d2dd24ac]$text = preg_replace ( array( '!', '@', '#', '>', '{', '}', '[', ']' ), '', $text);[/php:1:48d2dd24ac]
problemik_mam
7.10.2003, 17:36:45
Cytat
Mozna tak:
[php:1:b5491e2122]$text = preg_replace( "/(!|@|#|>|{|}|[|])/", '', $text );[/php:1:b5491e2122]
moglbys mi to wytlumaczyc

? bo sie nie moge polapac
Cytat
/(!|@|#|>|{|}|[|])/
/( - rozpoczyna wyrazenie
Znaki, ktore maja byc zamienione sa odzdzielone pipeami (
|).
{, }, [ i
] - maja odpowiednie funkcje w wyrazeniach, wiec trzeb je podac w formie, ktora bedzie wybierala wlasnie te znaki, a nie ich odpowiednie funkcje. Czyli dodajemy
przed tymi znakami
)/ - konczy wyrazenie
problemik_mam
7.10.2003, 18:29:26
jak do tego wyrazenia wiec dodac slashe ? tak zeby je tez usuwal ?
adwol
7.10.2003, 18:40:20
Cytat
jak do tego wyrazenia wiec dodac slashe ? tak zeby je tez usuwal ?
[php:1:96ef9b93be]<?php
$tekst = preg_replace('|[!@#>/{}[]]|', '', $tekst);
?>[/php:1:96ef9b93be]
Seth: Po co uzywać alternatywy lub tablicy gdy są znacznie prostsze klasy znaków.