Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]bbcode + lista
gebp
post 10.03.2009, 23:30:33
Post #1





Grupa: Zarejestrowani
Postów: 180
Pomógł: 6
Dołączył: 10.04.2006

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


Piszę a raczej zmieniam trochę jedną z klas bbcode. Ale do rzeczy.
Chcę uprości listę. Przekazywana z textarea będzie ni mniej ni więcej wyglądała tak ( wstawiam znaczniki html).
  1. [ul] punkt 1 <br/>
  2. punkt 2 <br/>
  3. itd <br/>
  4. 1 <br/>
  5. 2 <br/>
  6. itp. <br />
  7. [/ul]


Wykoncy... wyknfy ....eee wymyśliłem sobie że wyciągnę sobie to co jest między [ul][/ul], rozdzielę po przez <br /> i będzie OK. No ale niejest.
  1. <?php
  2. $text=$_POST['text'];
  3.  
  4. preg_match_all('/[ul](.*?)[/ul]/s', $text, $m);
  5.  
  6. $tab=$m['1'];
  7. $z=array();  // zamienione wewnątrz
  8. foreach ($tab as $val)
  9. { $t=explode(" ",$val);
  10.    
  11.   var_dump($t); // spr.
  12.   echo "<br />";
  13.   $dane='';
  14.  
  15.  foreach ($t AS $v)
  16.   { $dane .='[li]'.$v.'[/li]';
  17.   }
  18. $z[]=$dane;
  19. }
  20.  
  21. ?>


No i napotkałem problem. O ile między [ul][/ul] znajdował się tekst to było ok. Ale jeżeli były to cyfry to już nie było różowo. tzn
jeżeli $text="[ul] a <br /> b[/ul]" to otrzymywałem [li]a [/li] [li]b[/li]. W przypadku cyfr $text="[ul] 1 <br /> 2[/ul]" otrzymywałem [li]1 2[/li].
Gdzie leży błąd?
Jak go naprawić ?
Go to the top of the page
+Quote Post
erix
post 11.03.2009, 17:22:43
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No Waść, po co tak kombinujesz?

  1. <?php
  2. foreach ($tab as $val)
  3. { $t=explode(" ",$val);
  4.  
  5.  var_dump($t); // spr.
  6.  echo "<br />";
  7.  $dane='';
  8.  
  9. foreach ($t AS $v)
  10.  { $dane .='[li]'.$v.'[/li]';
  11.  }
  12. $z[]=$dane;
  13. }
  14. ?>

Wynajdujesz koło na nowo, bowiem:
  1. <?php
  2. foreach ($tab as $val)
  3. {
  4.  
  5. $dane =explode("<br /", $val);
  6. $dane = '[li]'.implode('[/li][li]', $dane).'[/li]');  
  7.  
  8. $z[]=$dane;
  9. }
  10. ?>

winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 12:32