Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [solved] [PHP] Znów wyrażenie regularne
Forum PHP.pl > Forum > PHP
Blackhole
Hej!
Mam tekst:
Cytat
{quote=\"JackK\",6952}Jakiś czas temu znajomy pokazał mi książkę \"Wielkie oczekiwania\". {/quote}Sprawdź!{quote=\"JackK\",6952}To, co widzimy, nie jest tym, co dostajemy. {/quote}Tu również.
Wywołuję na nim:
  1. <?
  2. $preq = preg_match_all("#\{quote=\\\"([^\"]+)\\\",(\d+)\}(.*)\{/quote\}#", $tresc, $qt);
  3. echo "<br />preq = $preq<br />";
  4. print_r($qt);
  5. ?>
i dostaję:
Kod
preq = 0
Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )

Dlaczego questionmark.gif blinksmiley.gif
wookieb
Bo masz \ w tekście
Blackhole
No mam, wiem o tym. Dlatego dałem \\\". Powinno więc działać chyba worriedsmiley.gif
jaslanin
Kod
<?php

function print_pre ($var)
{
    echo "<pre>";
    print_r($var);
    echo "</pre>";
}

function echo_var($name) {
    $name = str_replace('$', '', $name);
    global $$name;
    echo "$name = {$$name}";
}

$code = <<<end
{quote=\"JackK\",6952}Jakiś czas temu znajomy pokazał mi książkę \"Wielkie oczekiwania\". {/quote}Sprawdź!{quote=\"JackK\",6952}To, co widzimy, nie jest tym, co dostajemy. {/quote}Tu również.
end;

$preq = preg_match_all("#{quote=\"([^\"]+)\",(\d*)}(.*?){/quote}#", stripslashes($code), $qt);


echo_var('$preq');
print_pre($qt);

?>


zapewne można to lepiej zrobić smile.gif
wookieb
Nic z tego, że dodałeś slashe bo wszystko psuje ci to
Kod
[^\"]

Dlatego wystarczyło podać stripslashes jak kolega powiedział.
Blackhole
Ok, dzięki za pomoc.
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.