Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyciaganie tekstu z tagow
Forum PHP.pl > Forum > Przedszkole
Daimos
sory ze o takie glupoty glowe zawracam ale czytam juz z pol godziny o preg_replace i nie moge sobie poradzic tongue.gif

jak wyciagnac tekst z pomiedzy np. [xxx][/xxx]

  1. <?php
  2. $text = 'asd ahsd akhsdkjahs [xxx] 1234[/xxx]';
  3.  
  4. // chce otrzymac taki efekt;p
  5.  
  6. $text = '1234';
  7. ?>
kicaj
Bylo! poszukaj!
Daimos
caly czas szukam i nie moge znalesc :[
Puciek
explode" title="Zobacz w manualu PHP" target="_manual tez mozna
dr_bonzo
Jako ze zapoznaje sie zregexpami, napisalem rozwiazanie:
  1. <pre>
  2. <?php
  3. $text = 'asd [tag]ahsd akh[/tag]sdkjahs [xxx] 1234[/xxx]';
  4.  
  5. $x = preg_match_all( &#092;"/(?<=[xxx])[a-zA-Z0-9x20]*(?=[/xxx])/\", $text, $wyniki );
  6.  
  7. if ( ( $x !== FALSE ) && ( $x > 0 ) )
  8. {
  9. print_r( $wyniki );
  10. }
  11. ?>
  12. </pre>
tiraeth
@dr_bonzo: A nie łatwiej tak:
  1. <?php
  2. $string = &#092;"jakis string i w pewnym momencie [xxx]1234[/xxx] bum\";
  3. if(preg_match_all('/[xxx](.*)[/xxx]/', $string, $wynik))
  4. {
  5.  print_r($wynik);
  6. }
  7. ?>

? smile.gif
dr_bonzo
@Tiraeth: a sprawdzales chociaz swoj kod:
Kod
Array
(
    [0] => Array
        (
            [0] => xxx]1234[/xxx
        )

    [1] => Array
        (
            [0] => xx]1234[/xx
        )

)

?

te tagi nalezy wykluczyc z wyniku.
tiraeth
mała literówka biggrin.gif

  1. <?
  2. preg_match_all('/[xxx](.*?)[/xxx]/', $string, $wynik)
  3. ?>


zabrakło mi znaku zapytania tongue.gif
dr_bonzo
@Tiraeth: No sorry, ale nadal dostaje bezsensowne wyniki:
Kod
Array
(
    [0] => Array
        (
            [0] => xx
            [1] => x]1234[/
            [2] => xx
        )

    [1] => Array
        (
            [0] =>
            [1] => ]1234[
            [2] =>
        )

)
Daimos
dr_bonzo
z tego kodu:
  1. <?php
  2. $text = 'asd [tag]ahsd akh[/tag]sdkjahs [xxx] 1234[/xxx]';
  3.  
  4. $x = preg_match_all( &#092;"/(?<=[xxx])[a-zA-Z0-9x20]*(?=[/xxx])/\", $text, $wyniki );
  5.  
  6. if ( ( $x !== FALSE ) && ( $x > 0 ) )
  7. {
  8. print_r( $wyniki );
  9. }
  10. ?>

otrzymuje :
Array ( [0] => Array ( [0] => 1234 ) )
a powinno byc 1234
sad.gif
dr_bonzo
Preg match all zwraca tablice tablic. Myslalem ze dasz juz sobie raz z wyciagnieciem tej liczby z tablicy.
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.