Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dla wyjadaczy Wyrażeń Regularnych, Pomoc przy liście wyliczeń
id4
post
Post #1





Grupa: Zarejestrowani
Postów: 223
Pomógł: 1
Dołączył: --
Skąd: Rogożnik /K-ce/

Ostrzeżenie: (0%)
-----


Witam

Dzisiaj mam coś dla wyjadaczy wyrażeń regularnych.
Jeśli ktoś mógłby mi pomóc, byłbym wdzięczny.

Potrzebuję zrobić coś takiego.

- W inpucie wpisuję tekst:
Kod
[ul]
jakieś info /enter/
inne info /enter/
jeszcze inne info /enter/
[/ul]


Chodzi mi teraz o to (zapewne większość sie domyśla), by kod pomiędzy [ul] a [/ul] był wypunktowany, czyli wyrażenie musiałoby zmienić kod na:

  1. <ul>
  2. <li>jakieś info</li>
  3. <li>inne info</li>
  4. <li>jeszcze inne info</li>
  5. </ul>


Czy jest to możliwe do zrealizowania przy pomocy jednego wyrażenia, a jeśli tak, to może ma ktoś takowe? Jeśli nie, to proszę o wskazówki odnoścnie jego napisania. Z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
id4
post
Post #2





Grupa: Zarejestrowani
Postów: 223
Pomógł: 1
Dołączył: --
Skąd: Rogożnik /K-ce/

Ostrzeżenie: (0%)
-----


Witaj

Dane wejściowe:

Kod
[ul]
^jeden
^dwa
^trzy
[/ul]


Twój przykład wyświetla błąd, ale go poprawiłem na taki kod:
  1. <?php
  2. $string = preg_replace_callback('#[ul]s*(.*?)s*[/ul]#si', create_function('$func', 'return \"<ul><li>\". preg_replace(\"#^+#\"\"</li><li>\", $func[1]) .\"</li></ul>\";'), $string);
  3. ?>


No i właśnie w nim zachodzi taki efekt, że jest jeden wyróżnik na początku posty. Problem rozwiązałoby "olanie" pierwszego znaju ^.

Efekt działąnia jest taki:
Kod
*
* jeden
* dwa
* trzy


Przyznać muszę, że już coraz bliżej do finału (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 12:48