Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]preg_replace i #
Forum PHP.pl > Forum > Przedszkole
cisu
Witam, mam drobny problem z preg_replace.

Nie wiem czemu, ale hashe burzą mi całe działanie formularza (na ajaxie), więc napisałem coś takiego
  1. function deleteHash($string) {
  2. $string = preg_repleace("/#/","",$string);
  3. return $string;
  4. }

ale to nie chce działać. Chodzi o to, żeby usuwało # z ciągu i tyle. Ja z wyrażeń regularnych jestem prawie zielony. Pomoże ktoś?
Spawnm
Nie lepiej $str=str_replace('#', '', $str); ?
smietek
Jeśli już na siłę chcesz użyć preg_replace, to powinno być tak:
  1. $string = preg_replace('[#]', '', $string);
Daimos
Cytat(Spawnm @ 20.09.2010, 18:54:55 ) *
Nie lepiej $str=str_replace('#', '', $str); ?

preg szybszy winksmiley.jpg
cisu
No dobra, to działa ale mam inny problem.

Formularz, który zrobiłem działa na ajaxie tak, że bierze zmienne, powiedzmy
[JAVASCRIPT] pobierz, plaintext
  1. zmienna = document.getElementById('pole').value;
[JAVASCRIPT] pobierz, plaintext
a następnie wysyła zmienne do pliku przez ajaxa:
[JAVASCRIPT] pobierz, plaintext
  1. XMLHttpRequestObject.open("GET", "plik.php?zmienna1=" + zmienna);
[JAVASCRIPT] pobierz, plaintext
Formularz się wali, gdy wpiszę choć jeden # do dowolnego pola, innych znaków specjalnych nie próbowałem. Myślę, że trzeba to walidować jeszcze przy skrypcie JS. Czy w JS jest str_replace, trim i htmlspecialchars lub odpowiedniki?
smietek
W JavaScipcie to wyrażenie regularne które podałem Ci wyżej będzie dawało dokładnie taki sam efekt jak używane w PHP.
Do tego służy metoda replace (używana na danym stringu): http://www.w3schools.com/jsref/jsref_replace.asp
Daimos
bo # to znak specjalny, nie mozesz przesylac tego w adresie
wyjscie 1: usuwaj znaki specjalne przed wyslaniem ajaxem
wyjscie 2: przesylaj postem wszystkie dane, zamiast getem
cisu
Ok to jak już przy tym, jakich innych znaków nie da rady tak przesyłać i czy przesyłanie metodą POST będzie robić przy tym różnicę i jak to przesyłać POSTem do ajaxa?

I jeszcze jedno, gdybym na przykład chciał, żeby zamiast # wyświetlał się znak ascii #, to jak to zapisać? bo
[JAVASCRIPT] pobierz, plaintext
  1. string = string.replace('#','& # 35;');
[JAVASCRIPT] pobierz, plaintext

mija się trochę z celem smile.gif (bez spacji bo tutaj też zamienia)
Daimos
& to tez znak specjalny, slij postem, albo je usuwaj
co do samego wysylania postem, polecam zapoznanie sie z bibliotekami jQuery, ulatwiaja zycie
a jak nie, to pierwszy lepszy wynik z google i taki kod:
  1. var objHTTP, strResult;
  2. objHTTP = new ActiveXObject('Microsoft.XMLHTTP');
  3. objHTTP.open('POST',"OtherPage.asp",false);
  4. objHTTP.setRequestHeader('Content-Type',
  5. 'application/x-www-form-urlencoded');
  6.  
  7. objHTTP.send("id=1&user="+txtUser.value+"&password="+txtPassword.value);
  8.  
  9. strResult=objHTTP.responseText;
  10.  
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.