Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]preg_replace i #, jak usunąć # z ciągu
cisu
post
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 15.03.2008
Skąd: Mirostowice Dolne

Ostrzeżenie: (0%)
-----


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ś?
Go to the top of the page
+Quote Post
Spawnm
post
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Nie lepiej $str=str_replace('#', '', $str); ?
Go to the top of the page
+Quote Post
smietek
post
Post #3





Grupa: Zarejestrowani
Postów: 306
Pomógł: 32
Dołączył: 20.01.2008

Ostrzeżenie: (20%)
X----


Jeśli już na siłę chcesz użyć preg_replace, to powinno być tak:
  1. $string = preg_replace('[#]', '', $string);


--------------------
Go to the top of the page
+Quote Post
Daimos
post
Post #4





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cytat(Spawnm @ 20.09.2010, 18:54:55 ) *
Nie lepiej $str=str_replace('#', '', $str); ?

preg szybszy winksmiley.jpg


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
cisu
post
Post #5





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 15.03.2008
Skąd: Mirostowice Dolne

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
smietek
post
Post #6





Grupa: Zarejestrowani
Postów: 306
Pomógł: 32
Dołączył: 20.01.2008

Ostrzeżenie: (20%)
X----


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


--------------------
Go to the top of the page
+Quote Post
Daimos
post
Post #7





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
cisu
post
Post #8





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 15.03.2008
Skąd: Mirostowice Dolne

Ostrzeżenie: (0%)
-----


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)

Ten post edytował cisu 20.09.2010, 18:20:29
Go to the top of the page
+Quote Post
Daimos
post
Post #9





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


& 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.  


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 04:48