Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Znaki enter, jak usunąć
Jarod
post
Post #1





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Niby banalny ale nierozwiązany problem http://forum.php.pl/index.php?showtopic=30232 Doszedłem do wniosku, że można ze stringu usunąć wszystkie znaki entera. Ale nie wiem jak. Czy jest do tego jakaś funkcja? Jeśli nie to jak to zrobić? Będę wdzięczny za pomoc. (mam nadzieje, że to pomoże )

Pozdrawiam


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
tiraeth
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


  1. <?php
  2. # non-stop operujemy na zmiennej $a
  3.  
  4. $a = str_replace(&#092;"<br />\", \"\", $a); # usuwany znak <br />
  5. $a = str_replace(&#092;"<br>\", \"\", $a);   # usuwany znak <br>
  6. $a = str_replace(&#092;"n\", \"\", $a); # usuwany znak n (unix)
  7. $a = str_replace(&#092;"r\", \"\", $a); # usuwany znak r (macos)
  8. $a = str_replace(&#092;"rn\", \"\", $a); # usuwany znak rn (win32)
  9. ?>


najprostszy sposób usuwania znaków entera smile.gif

Ten post edytował volture 16.05.2005, 20:43:49
Go to the top of the page
+Quote Post
Jarod
post
Post #3





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Cytat(volture @ 2005-05-16 19:43:26)
  1. <?php
  2. # non-stop operujemy na zmiennej $a
  3.  
  4. $a = str_replace(&#092;"<br />\", \"\", $a); # usuwany znak <br />
  5. $a = str_replace(&#092;"<br>\", \"\", $a);  # usuwany znak <br>
  6. $a = str_replace(&#092;"n\", \"\", $a); # usuwany znak n (unix)
  7. $a = str_replace(&#092;"r\", \"\", $a); # usuwany znak r (macos)
  8. $a = str_replace(&#092;"rn\", \"\", $a); # usuwany znak rn (win32)
  9. ?>


najprostszy sposób usuwania znaków entera smile.gif

Rozumiem. A po co to:
  1. <?php
  2.  
  3. $a = str_replace(&#092;"n\", \"\", $a); # usuwany znak n (unix)
  4. $a = str_replace(&#092;"r\", \"\", $a); # usuwany znak r (macos)
  5. $a = str_replace(&#092;"rn\", \"\", $a); # usuwany znak rn (win32)
  6.  
  7. ?>


Rozumiem, że to chodzi o znak entera pod tymi 3 systemami?

Pozdrawiam


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
Pigula
post
Post #4





Grupa: Zarejestrowani
Postów: 446
Pomógł: 0
Dołączył: 5.03.2005
Skąd: Lublin

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


Cytat(J4r0d @ 2005-05-16 22:05:01)
Rozumiem. A po co to:
  1. <?php
  2.  
  3. $a = str_replace(&#092;"n\", \"\", $a); # usuwany znak n (unix)
  4. $a = str_replace(&#092;"r\", \"\", $a); # usuwany znak r (macos)
  5. $a = str_replace(&#092;"rn\", \"\", $a); # usuwany znak rn (win32)
  6.  
  7. ?>


Rozumiem, że to chodzi o znak entera pod tymi 3 systemami?

to chyba mozna pominac jak przed usuwaniem enterow zastosujesz funkcje nl2br.
Go to the top of the page
+Quote Post
Jarod
post
Post #5





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Cytat(Pigula @ 2005-05-16 22:05:01)
to chyba mozna pominac jak przed usuwaniem enterow zastosujesz funkcje nl2br.

nl2br zamienia znaki entera na </br>. A ja chę usunąć znaki entera, żeby ich nie liczył. Najlepiej przeczytajcie mój problem - może to coś rozjaśni Link wyżej:(

Pozdrawiam


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
crash
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


'Znak entera' to: pod UNIX'em: \n, pod Mac'em \r, pod Wingrozą \r\n. Aby pozbyć się tych znaków wystarczy:
  1. <?php
  2. $ciag = str_replace(array(&#092;"n\", \"r\"), '', $ciag);
  3. ?>

Istotne są użyte cudzysłowia gdyż np. '\n' nie zostanie poprawnie zinterpretowane jako chr(10)...

Ten post edytował crashu 16.05.2005, 21:55:35


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





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


To chyba nie to.
Mam w formularzu skrypt
  1. ...
  2. <!--
  3. //Funkcja ograniczająca ilość wpisywanych znaków
  4. function MaxL(obj)
  5. {
  6. if (obj.value.length > 10)
  7. {
  8. alert('Treść zlecenia nie może przekroczyć 255 znaków!');
  9. obj.value=obj.value.substr(0,10);
  10. }
  11. }
  12. //-->
  13. ...
  14.  
  15. <textarea onchange="MaxL(this);" name="tresc" cols="60" rows="4" wrap="virtual"></textarea>
  16. ...

Jeśli podam więcej znaków niż 10 to dostaję alert i skrypt obcina tekst do 10 znaków. Idąc tym tropem dalej dodatkowo zabezpieczyłem skrypt php na wypadek wyłączenia obsługi JS w przeglądarce.
Jeśli w formularzu podam taki ciąg znaków:
Kod
1
2
3
4
5

to do skryptu wysyłane jest tak naprawdę 13 znaków. I skrypt tego nie przepuszcza. Chcę to tak napisać, żeby skrypt sprawdzał właściwą ilośc znaków (widoczną), ale jednocześnie przy edycji tego zlecenia układ podany przez użytkownika (czyli entery) był zachowany. Czy jest to możliwe?

Pozdrawiam

EDIT: Albo funkję JS jakoś poprawić żęby liczyła entery.. Tylko nie wiem jak

Ten post edytował J4r0d 16.05.2005, 22:15:58


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
crash
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


  1. <?php
  2. $t = '
  3. 1
  4. 2
  5. 3
  6. 4
  7. 5';
  8.  
  9. echo strlen($t); // 15
  10. echo strlen(str_replace(array(&#092;"n\", \"r\"), '', $t)); // 5
  11. ?>

To już nie rozumiem o co Ci chodzi...


--------------------
Go to the top of the page
+Quote Post
Jarod
post
Post #9





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Sorki. Działa bo nie zapisuje na stałe w zmiennej tylko to jest chwilowe zastępowanie. chyba jestem za bardzo zmęczony. hx i sorki za trucie dupska smile.gif
pozdrawiam

Ten post edytował J4r0d 17.05.2005, 00:08:35


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
-J4r0d niezalogowany-
post
Post #10





Goście







Zrezygnuję z JS. Dlaczego bo JS liczy enter jako 1 znak w php i w bazie traktowane jest to jako 2 znaki. Nawet jak będę robił tak jak crashu to do bazy nie będzie zapisywane dokładnie to co JS przepuści tylko pomniejszone o 1 znak dodatkow dla każdego entera. Lepiej zostawić samo sprwdzanie w php

pozdrawiam
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: 20.08.2025 - 13:51