Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Usuwanie białych znaków
Forum PHP.pl > Forum > Przedszkole
Star
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ł ?
Pyton_000
  1. $string = preg_replace('/\s+/', '', $string);
Star
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);
Pyton_000
[] zamien na /
Star
zmienilem na
  1. preg_match_all('/<thclass="users"></th><td>(.+?)</td>/', $profil, $imie);

i niestety nic nie wyswietla
nospor
/ 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...
Star
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
nospor
Mowilem o / wystepujacych w SRODKU a nie o granicznych
Star
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
KsaR
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.
Star
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?
KsaR
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.
kreatiff
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ń.
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.