Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrażenie regularne problem
Forum PHP.pl > Forum > PHP
smiady
Mam taki kod:

  1. preg_match_all('/([komorka]){1}.+([komorka]){1}/',
  2. '[komorka]10[komorka]20[komorka]30[komorka]40[komorka]50[komorka]',
  3. $wynik);
  4.  
  5. echo '<pre>'; print_r($wynik); echo '</pre>';


i otrzymałem taki wynik:

Array
(
[0] => Array
(
[0] => komorka]10[komorka]20[komorka]30[komorka]40[komorka]50[komorka
)

[1] => Array
(
[0] => k
)

[2] => Array
(
[0] => a
)

)

a chce otrzymać zwrócone tylko liczby.
SmokAnalog
Podaj jakiś przykładowy realny ciąg znaków, z którego będziesz chciał te liczby pobierać.
smiady
Robię plugina do wordpressa, aby tworzyć tabelki i ten przykład ciągu znaków:
[komorka]10[komorka]20[komorka]30[komorka]40[komorka]50[komorka] jest realny i między komórkami może się znaleźć dosłownie wszystko (nie tylko liczby)
SmokAnalog
Nie odpowiedziałeś precyzyjnie na moje pytanie.

Czy Ty czasem nie robisz po prostu shortcode'u: http://codex.wordpress.org/Shortcode_API ? Domyślam się, że próbujesz zamienić numery telefonu wewnątrz [komorka] na link czy coś. Pytanie tyko dlaczego nie zamykasz tego ciągu [komorka]? Czyli np.:
Kod
[komorka]Mój nr to 123456789, dzwońcie[/komorka]


Bo takie coś:
Kod
[komorka]10[komorka]20[komorka]


To za bardzo sensu nie ma.
smiady
Dokładnie robię shortcode, a nie plugin, ale mój zapis może być 10 to pierwsza kolumna, 20 to druga, ale w sumie zapis [komorka]10[/komorka] też może być tylko, że nie daje sobie rady z wyrażeniem regularnym. Chodzi mi o pobranie tych wartości do tablicy.
SmokAnalog
No to inaczej. Co będzie wynikiem takiego zapisu? Chodzi mi o wynikowy HTML.
Kod
[komorka]Mam 101 dalmatyńczyków[/komorka][komorka]1, 2, 3[/komorka][komorka]Ala ma kota.[/komorka]
smiady
widzę, że dążysz do preg_replace ? smile.gif

Będzie to HTMLowska tabela, ale chce mieć te wartości w tablicy, bo potem będę ubierać to w znaczniki td tr, ale będą mieć te komórki rózne atrybuty, więc nie chce mieć preg_replace.
SmokAnalog
Na razie dążę do zrozumienia o co Ci chodzi tongue.gif Bo nadal nie powiedziałeś do czego Ci te liczby potrzebne. Prawdę mówiąc nie wiem czy Ty sam dokładnie wiesz co chcesz zrobić. Ponawiam prośbę o dokładny wynikowy HTML, to będziemy dalej kombinować.
smiady
Chcę tylko, aby z zapisu:
[komorka]10[/komorka][komorka]ala ma kota[/komorka]
wyciągnąć tablicę o wartościach: 10, ala ma kota
kod HTML myślę, że nie będzie potrzebny, aby pomóc mi w odpowiedzi smile.gif
SmokAnalog
WordPress pomaga w tym.

  1. function komorka_shortcode($atts, $content = null) {
  2. // zmienna $content zawiera to, co ktoś wpisał między [komorka] a [/komorka]
  3. }
  4.  
  5. add_shortcode( 'komorka', 'komorka_shortcode' );


Zastanów się czy na pewno potrzebujesz takiej tablicy. Jeśli nadal twierdzisz, że tak, to możesz stworzyć globalną zmienną tablicową i wewnątrz funkcji komorka_shortcode() dodawać do niej $content. Z kilku powodów to lepsze rozwiązanie niż wyrażenia regularne.
smiady
SmokAnalog dzięki za pomoc i zaangażowanie. Chodzi mi o to, że shortcodem jest znacznik [tablica][/tablica], a w zmiennej $content ciąg znaków [komorka]5434[/komorka][komorka]dfs434[/komorka] - co by przemieniło w tablicę, a w zmiennej $attr parametry do sformatowania tablicy
SmokAnalog
To dla [tablica] byś musiał zrobić coś na ten kształt:
  1. function tablica_shortcode($atts, $content = null) {
  2. echo do_shortcode($content);
  3. }
  4.  
  5. add_shortcode( 'tablica', 'tablica_shortcode' );


A dla [komorka] tak, jak pokazałem wcześniej.
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.