Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Usuwanie między znacznikami
Ziels
post
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 2
Dołączył: 30.06.2006

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


Witam!

Mam problem z usuwaniem znaku końca lini (\n) spomiędzy okreslonych znaczników. Dokładniej chodzi o to że w zmiennej mam przechowywane:

  1. <?php
  2. $text="jakiś bardzo długi tekst w którym mają być wstawione <br> zamiast /n w wyniku końcowym [znacznik]a
  3. tutaj
  4. ma wycinać
  5. n[/znacznik]
  6. ?>


Da się to jakoś zrobić? strstr nie wchodzi w drogę bo za każdym razem "jakiś bardzo długi tekst" będzie inny. Nie mam pojęcia co do tego się nada - str_replace() jest złe również, ponieważ przy takim przetwarzaniu:
  1. <?php
  2. $str = preg_replace("#<!--c1--><div class='codetop'>KOD</div><div class='codemain'><!--ec1-->(.*?)<!--c2--></div><!--ec2-->#si", "efekt", $str);
  3. $str = str_replace('n', '', '[znacznik](.*?)[/znacznik]');
  4. ?>

$str będzie miało na końcu wartość "[znacznik](.*?)[/znacznik]"...

Ten post edytował Ziels 3.08.2006, 11:38:03
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kosmi
post
Post #2





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 24.07.2006

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


Jeżeli nie wiesz co będzie w ciągu $text czyli zakładam że nie wiesz też ile razy pojawi się [znacznik]. Proponuję więc takie rozwiązanie (łopatologiczne):

  1. <?php
  2. $tablica=explode("[znacznik]",$text);
  3. if(count($tablica)>1){
  4. for($i=1;$i<count($tablica);$i++){
  5. $tablica2=explode("[/znacznik]",$tablica[$i]);
  6. $tablica2[0]=trim($tablica2[0]);
  7. $tablica[$i]=implode("[/znacznik]",$tablica2);
  8. }
  9. $text_nowy=implode("[znacznik]",$tablica);
  10. }
  11. ?>


Sprawdziłem na przykładowym ciągu i działa jeżeli dobrze zrozumiałem o co chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam
Go to the top of the page
+Quote Post
Ziels
post
Post #3





Grupa: Zarejestrowani
Postów: 235
Pomógł: 2
Dołączył: 30.06.2006

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


Cytat(Kosmi @ 3.08.2006, 10:39 ) *
Jeżeli nie wiesz co będzie w ciągu $text czyli zakładam że nie wiesz też ile razy pojawi się [znacznik]. Proponuję więc takie rozwiązanie (łopatologiczne):

  1. <?php
  2. $tablica=explode("[znacznik]",$text);
  3. if(count($tablica)>1){
  4. for($i=1;$i<count($tablica);$i++){
  5. $tablica2=explode("[/znacznik]",$tablica[$i]);
  6. $tablica2[0]=trim($tablica2[0]);
  7. $tablica[$i]=implode("[/znacznik]",$tablica2);
  8. }
  9. $text_nowy=implode("[znacznik]",$tablica);
  10. }
  11. ?>


Sprawdziłem na przykładowym ciągu i działa jeżeli dobrze zrozumiałem o co chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam


Działa prawie dobrze (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Wywala tylko pierwsze /n spomiędzy znaczników
Tu masz przykład - znaczniki po przejechaniu twoim kodem są zamieniane na <ul></ul>
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 4.10.2025 - 19:50