Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenia regularne
Forum PHP.pl > Forum > PHP
kot5598
Witam!

Problem dotyczy wyrazen regularnych. Czy jest możliwość pominięcia znaków końca linii przy odczytywaniu tekstów, tzn. np.: Wyrazenie odczytuje zawartosc od > do < i tekst to:

>
a
b
c
d
<
W tym momenie w tablicy otrzymam
a
b
c
d,
a chciałbym otrzymac zamiast tego: a b c d(bez enterów).
crocodillo
  1. str_replace(PHP_EOL,' ',$jakisTamTekst);


a odnośnie wyr.reg. to musisz dokładniej napisać o co chodzi najlepiej z przykładem.
kot5598
Chodzi o to, ze strona, z której pobieram tekst jest fatalnie zbudowana np.
<a href="">aaaaaa
aaa
aa
aa


aaa



</a>
I chodzi o to że jak pobieram tekst linku (miedzy <a> i </a>) to wychodzi tekst z duzą iloscia znakow konca linii, i kiedy chce to zapisac do txt, to jest za nic czytelne.
Majkelo23
  1. $zmienna = str_replace(array("\n"), array("\n<br />\n"), $zmienna);

questionmark.gif

Pokombinuj z tego co Ci podaliśmy, bo ja trochę nie rozumiem.
kot5598
Chodzi mi o to jak otrzymac tekst bez enterow

<a>

Hello

World

</a>

I wynikiem ma byc:

Hello World

a nie

Hello

World
Majkelo23
  1. $zmienna = str_replace(array("\n<br />\n"), array(" "), $zamiana);


Zobacz.

EDIT:

Sam sprawdziłem i działa:

  1. <?php
  2. $text = 'ala ma kota
  3. kot ma ale
  4. ale ja ali nie lubie
  5. i trudno ;]';
  6.  
  7. $zmienna = str_replace(array("\n<br />\n"), array(" "), $text);
  8.  
  9. echo $zmienna;
  10. ?>


EFEKT:

ala ma kota kot ma ale ale ja ali nie lubie i trudno ;]
kot5598
To nic nie zmienia.

Moze jakies inne pomysly
Majkelo23
Działa, działa...
kot5598
Rzeczywiscie usuwa entery w srodu tekstu, ale te na koncu i na poczatku zostaja, przez co w pliku zapisuje sie tekst co 3 linijki
Majkelo23
Pokaż cały ten kod.
kormichu
Gotowy filtr z Zend Frameworka:
Kod
class Zend_Filter_StripNewlines implements Zend_Filter_Interface
{

    /**
     * Defined by Zend_Filter_Interface
     *
     * Returns $value without newline control characters
     *
     * @param  string $value
     * @return string
     */
    public function filter ($value)
    {
        return str_replace(array("\n", "\r"), '', $value);
    }
}


Tak naprawdę wystarczy, że weźmiesz samą funkcje str_replace nie musisz specjalnie tworzyć obiektu
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.