Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Usuwanie białych znaków
Star
post
Post #1





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

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


Witam

Mam taki kawałek kodu ,z którego chcę sie pozbyc bialych znaków,tak by wszystko było w jednej linii:
  1. <th class="users">
  2. Lista:
  3. </th>
  4. <td>
  5. Mateusz </td>


trim niestety nie pomaga, ma ktos jakis inny pomysł ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


  1. $string = preg_replace('/\s+/', '', $string);
Go to the top of the page
+Quote Post
Star
post
Post #3





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

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


działa,dzięki smile.gif

A moze podpowiedz jeszcze dlaczego nie chce mi tego przeparsowac gdy robię to tak :
  1. preg_match_all('[<thclass="users"></th><td>(.+?)</td>]', $profil, $imie);
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


[] zamien na /
Go to the top of the page
+Quote Post
Star
post
Post #5





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

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


zmienilem na
  1. preg_match_all('/<thclass="users"></th><td>(.+?)</td>/', $profil, $imie);

i niestety nic nie wyswietla
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




/ jest znakiem specjalnym. Wszelkie wystapienia / w srodku masz poprzedzic\ czyli ma byc \/

Poza tym w pierwszym poscie widac, ze masz tekst LISTA, ktorego w zaden sposob nie uwzgledniles w wyrazeniu. Samo sie nie doda...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

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


faktycznie ,przepraszam,mój błąd

jednak zmieniłem na
  1. preg_match_all('\/<thclass="users">Lista:</th><td>(.+?)</td>\/', $profil, $imie);

i wywołując to za pomocą
  1. print_r($imie);
nic nie pojawia się na stronie
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Mowilem o / wystepujacych w SRODKU a nie o granicznych


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

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


dobrze, jednak zmieniłem na
  1. preg_match_all('/<thclass="users">Lista:<\/th><td>(.+?)<\/td>/', $profil, $imie);

i teraz zwraca pustą tablice, bez zadnego wyniku
Go to the top of the page
+Quote Post
KsaR
post
Post #10





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

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


Reasumując, chcesz dostać coś z stringa co jest pomiędzy tym co w preg_match_all podałeś.
I zapewne jest to imie bez html?

nie wolisz zrobić w takim razie tak:
  1. <?php
  2. // ...
  3. echo strip_tags($profil);
  4.  
  5. // lub:
  6. echo str_replace(array('<thclass="users">Lista:</th><td>','</td>'),'',$profil);
  7. ?>


ps. Lepiej używać # # od / / w wyrażeniach, często mniej do slashow'ania.

Ten post edytował Ksar 17.06.2015, 16:55:26


--------------------
Go to the top of the page
+Quote Post
Star
post
Post #11





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

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


tak,jest to imie

Dzieki za odpowiedz Ksar, jednak chciałbym zobaczyc jak to zrobic za pomocą preg_match_all i bede wdzieczny jesli ktos mi podpowie jak zrobic to za pomocą tej funkcji smile.gif

Dzieki Panowie, dopiero teraz zauwazylem ze porady Pythona i Nospora sa dobre, poprostu filezilla nie aktualizowala pliku po przeniesieniu, zrestartowalem i ładnie ruszyło smile.gif jeszcze raz dzieki
i moze polecicie jakis dobry materiał dotyczący takiego wycinania ? albo jakis polski poradnik o DOM?
Go to the top of the page
+Quote Post
KsaR
post
Post #12





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

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


Cytat(Star @ 17.06.2015, 18:11:45 ) *
tak,jest to imie

Dzieki za odpowiedz Ksar, jednak chciałbym zobaczyc jak to zrobic za pomocą preg_match_all i bede wdzieczny jesli ktos mi podpowie jak zrobic to za pomocą tej funkcji smile.gif

  1. <?php
  2. $str='<th class="users"> Lista: </th> <td> Mateusz </td>';
  3.  
  4. $str=preg_replace('#\s+#','',$str);
  5. // echo '#',$str,'#'; /* zwraca: #<thclass="users">Lista:</th><td>Mateusz</td># */
  6.  
  7. preg_match_all('#<thclass="users">Lista:</th><td>(.+?)</td>#',$str,$output);
  8. print_r($output);
  9. /*
  10. Array( [0] => Array ( [0] => <thclass="users">Lista:</th><td>Mateusz</td> )
  11. [1] => Array ( [0] => Mateusz )
  12. )
  13. */
  14.  
  15. echo $output[1][0]; # Pokazuje: Mateusz

Co do pierwszego pytania, bo testy porobiłem zanim dałeś kolejna odpowiedź tongue.gif.

Ten post edytował Ksar 17.06.2015, 17:18:36


--------------------
Go to the top of the page
+Quote Post
kreatiff
post
Post #13





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

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


Można czymś takim też potraktować nasz wsad:
  1. $str2 = preg_replace('#\p{C}#', '', $str);
Ale tutaj trzeba przetestować, by za wiele nie poleciało w otchłań.
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 - 15:12