Wpis z mikrobloga

#programowanie #php

Cześć mireczki, potrzebuję pomocy bo siedzę już chwilkę nad tym a "solucjów" w necie brak (tzn. są ale nie takie jak są mi potrzebne). Otóż mam zmienną w której mam np.

* List 1

* List 2

* List 3

Chce wyrażeniem regularnym wydobyć tylko 2 pierwsze - (i ich kontent też). Jak mogę to zrobić? "
(.*)<\/ul>" zwraca mi wszystkie * a to nie o to mi chodzi. Będę wdzięczny za pomoc! :)
  • 22
@Rst00: Domyślam się że używasz pregmatchall więc po prostu wyciągnij tylko dwa pierwsze elementy tablicy z wynikami :D

Edit: Oczywiście wyciągnij - (.*?)
:)
* (.*)<\/li>* (.*)<\/li>
taki regex zwróci Ci w tablicy dokładnie to czego potrzebujesz, ale i tak parsowanie HTMLa regexami to zazwyczaj zły pomysł. Co próbujesz osiągnąć?
@kao3991: mam w bazie "x" takich li, chce wyciągnąć określoną ich ilość. Użytkownik nie ma dostępu do dodawania, edycji tego (tzn. ma, ale to admin więc zwykły użytkownik nie napsuje). No to inaczej, jak mogę w inny sposób osiągnąć mój cel?

@matiit: a gdzie ja Ci będę teraz Symfony ściągać :D

@diwi: No właśnie w tym problem, że to ciężko. Dostaję jedną tablicę gdzie są wszystkie li.
@Rst00: php<br/

$html = '* test1
* test2
* test3

';

preg_match_all('/- (.*?)<\/li>/si', $html, $results, PREG_SET_ORDER);

echo $results[0][1].PHP_EOL;_
_
echo $results[1][1].PHP_EOL;

?>
@matiit: tylko, że ściąganie specjalnie tego i tego komponentu do Symfony raczej mija się z celem biorąc pod uwagę to, że będzie to użyte raz na jednej podstronie a CMS'a już mam :)
mam w bazie "x" takich li, chce wyciągnąć określoną ich ilość. Użytkownik nie ma dostępu do dodawania, edycji tego (tzn. ma, ale to admin więc zwykły użytkownik nie napsuje). No to inaczej, jak mogę w inny sposób osiągnąć mój cel?


@Rst00: trzymanie HTMLa w bazie po to żeby z niego wyciągać dane to jeszcze gorszy pomysł niż parsowanie HTMLa regexami, no ale pewnie się nie opłaca przerabiać - więc regex (mój
@kao3991: a robię tak dlatego, bo mam jakby "główną" wersję strony "A" i potrzebuje w pewnym miejscu wyświetlić tylko 5 początkowych - z tej strony "A" jako taką zachęta do odwiedzenia pełnej podstrony. Innego pomysłu na realizację tego nie miałem (no może oprócz zapisywania do innej tabeli takiego skróconego kontentu, ale to trochę za dużo roboty).
@ogur: Nie, nie. To nie tak. Edytor jest mi potrzebny po to, żeby w miarę ładny sposób edytować treść. Akurat ta podstrona charakteryzuje się tym, że ma około 9-10 takich - a potrzebowałem wybrać tylko kilka z nich. Znasz inne rozwiązanie, żeby można było korzystać z html'a w edytorze a go nie trzymać w bazie? :)