Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Usuwanie tekstu z pomiędzy 2 znaków.
Forum PHP.pl > Forum > Przedszkole
kajzur
Witam,

mam np taki tekst [lol]sfsdfsdf

i chciałbym żeby zostało samo

sfsdfsdf

Jak można to napisać? Hm? Wyrażenia regularne nie są moją mocną stronę, o i długość tekstu pomiędzy [] nie znamy..

O i przy okazji chciałbym wywalić wszystkie znaki typu !@:<.,; itp.. Jednym słowem chce zrobić tekst do linku, mam tak:

Kod
function url($tekst)
{
$tekst = strtr($tekst, 'ĘÓĄŚŁŻŹĆŃęóąśłżźćń', 'EOASLZZCNeoaslzzcn');
$tekst = urlencode($tekst);
return $tekst;
}
Wicepsik
  1. <?php
  2. $teskt = '[lol]sfsdfsdf';
  3. preg_match('/[([a-zA-Z]+)]([a-zA-Z]+)/', $teskt, $wynik);
  4. print_r($wynik);
  5. ?>


  1. Array
  2. (
  3. [0] => [lol]sfsdfsdf
  4. [1] => lol
  5. [2] => sfsdfsdf
  6. )
kajzur
Kod
function url($tekst)
{
$tekst = strtolower(strtr($tekst, 'ĘÓˇ¦ŁŻ¬ĆŃęó±¶łżĽćń', 'EOASLZZCNeoaslzzcn'));

preg_match('/\[([a-zA-Z]+)\]([a-zA-Z]+)/', $tekst, $tekst1);
$tekst2 = urlencode($tekst1[2]);

return $tekst2;

}

echo url("[lol]NAJLEPSZE Tanie RZECZY");


Hmm, takie co¶ zwraca mi "najlepsze". Po kroku.. Pierw wywalam polskie znaki, póĽniej zamieniam litery na małe, następnie wyrzucam to, co znajduje się pomiędzy [], i koduje do url'a. Ale co¶ nie do końca działa.
Wicepsik
  1. <?php
  2. function url($tekst)
  3. {
  4. $tekst = strtolower(strtr($tekst, 'ĘÓˇ¦ŁŻ¬ĆŃęó±¶łżĽćń', 'EOASLZZCNeoaslzzcn'));
  5.  
  6. preg_match('/[([a-zA-Z]+)]([a-zA-Z ]+)/', $tekst, $tekst1);
  7. $tekst2 = urlencode($tekst1[2]);
  8.  
  9. return $tekst2;
  10.  
  11. }
  12.  
  13. echo url("[lol]NAJLEPSZE Tanie RZECZY");
  14. ?>

Nie podałem wcze¶niej w wyrażeniu spacji winksmiley.jpg
kajzur
Warning: preg_match() [function.preg-match]: Compilation failed: unmatched parentheses at offset 11 in

Taki bł±d dostałem, jak to poprawić?smile.gif
Wicepsik
Usunęło znaki \
  1. <?php
  2. preg_match('/[([a-zA-Z]+)]([a-zA-Z ]+)/', $tekst, $tekst1);
  3. ?>

na
  1. <?php
  2. preg_match('/[([a-zA-Z]+)]([a-zA-Z ]+)/', $tekst, $tekst1);
  3. ?>
kajzur
Kod
function url($tekst)
{
$tekst = strtolower(strtr($tekst, 'ĘÓˇ¦ŁŻ¬ĆŃęó±¶łżĽćń', 'EOASLZZCNeoaslzzcn'));

preg_match('/\[([a-zA-Z]+)\]([a-zA-Z ]+)/', $tekst, $tekst1);
$tekst2 = str_replace(" ", "_", $tekst1[2]);

return $tekst2;

}

echo url("[lol]NAJLEPSZE Tanie RZECZY"); // zwróci "najlepsze_tanie_rzeczy"


Działa, dzięki wielkie stary smile.gif
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.