Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Usuwanie wybranych tagow [WR]
maciejkiner
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 2
Dołączył: 7.03.2004

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


Witam

Siedze nad tym od rana i nie moge nigdzie znalesc, a jak juz znajde to nie dziala, wiec zapytam (temat IMHO banalny dlatego w przedszkolu). Jak usunac z tekstu wybrany tag (np table) razem z parametrami, tzn, ze mam np:

  1. <table id='costam' width='100'>jakies inne rzeczy w tej tabeli</table>


a na wyjsciu dostane

  1. jakies inne rzeczy w tej tabeli


Z gory dzieki za pomoc (wiem, ze temat prosty, nie bijcie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ). Chociaz jakas podpowiedz, ale szersza niz eregi_replace - bo wiem, ze to trzeba zalatwic WR. Tutoriale jakies czytalem i forum przejrzalem ale nic mi nie pomoglo (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

pzdr
maciejkiner
Go to the top of the page
+Quote Post
treewood
post
Post #2





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 18.01.2003

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


jesli chcesz sie pozbyc kodu HTML czyli np. <table> to walnij echo strip_tags( 'kod html' ); i funkcja zwroci ci calosc bez kodu HTML
Go to the top of the page
+Quote Post
maciejkiner
post
Post #3





Grupa: Zarejestrowani
Postów: 45
Pomógł: 2
Dołączył: 7.03.2004

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


Witam

Az taki glupi to nie jestem, zeby tego nie wiedziec (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Problem w tym, ze musze pozbyc sie tylko niektorych znacznikow (doslownie dwoch czy trzech).

pzdr
maciejkiner
Go to the top of the page
+Quote Post
lukir
post
Post #4





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 6.08.2004
Skąd: Warszawa

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


Jak zwykle - zapraszam do lektury manuala:

http://pl.php.net/manual/pl/function.strip-tags.php#56082

Ten post edytował lukir 30.08.2006, 19:19:08
Go to the top of the page
+Quote Post
maciejkiner
post
Post #5





Grupa: Zarejestrowani
Postów: 45
Pomógł: 2
Dołączył: 7.03.2004

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


Witam

Chyba nie o to mi chodzi. Przyklad ktory podeslales zostawia wybrany parametr z podanego taga. A mi chodzi o to, zeby calego taga wywalic. I byloby to (dla mnie) proste gdyby wystarczylo zrobic str_replace('<table>', '', $str2parse); ale niestety table moze miec jakies parametry. I tu przydalyby sie wyraznie regularne, ktore niestety nie wiem jak zapisac.

pzdr
maciejkiner
Go to the top of the page
+Quote Post
lukir
post
Post #6





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 6.08.2004
Skąd: Warszawa

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


To może ten przykład:

http://pl.php.net/manual/pl/function.strip-tags.php#61834

Mi wszystko działa - zrobiłem tak:

  1. <?php
  2. function strip_selected_tags($text, $tags = array())
  3.  {
  4.  $args = func_get_args();
  5.  $text = array_shift($args);
  6.  $tags = func_num_args() > 2 ? array_diff($args,array($text)) : (array)$tags;
  7.  foreach ($tags as $tag){
  8.  if(preg_match_all('/<'.$tag.'[^>]*>(.*)</'.$tag.'>/iU', $text, $found)){
  9.  $text = str_replace($found[0],$found[1],$text);
  10.  }
  11.  }
  12.  
  13.  return $text;
  14.  }
  15.  
  16.  
  17.  
  18. $text = '<table id="dfgdfg" clas="safdsdf">sdfsdfsdfsdfsdf</table>';
  19. $tags = array('table');
  20.  
  21.  
  22. echo strip_selected_tags($text, $tags);
  23. ?>


Nadal manual... - wystarczy poszukać...
Go to the top of the page
+Quote Post
maciejkiner
post
Post #7





Grupa: Zarejestrowani
Postów: 45
Pomógł: 2
Dołączył: 7.03.2004

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


Witam

No i nadal nie dziala. Jak robie

  1. <?php
  2. $text = '<table id="dfgdfg" clas="safdsdf"><tr><td>komorka</td><td><table border="1"><tr><td width="100">inside</td></tr></table></td></tr></table>';
  3. $tags = array('table');
  4.  
  5. echo strip_selected_tags($text, $tags);
  6. ?>


to otrzymuje:

  1. <tr><td>komorka</td><td><table border="1"><tr><td width="100">inside</td></tr></td></tr></table>


(IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Moze zrobmy inaczej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Kto wie jak wyszukac (przez wyrazenia regularne) nastepujacy ciag:

  1. <jakis_tag [dowolny ciag znakow]>

? Bo mi juz rece opadaja (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

pzdr
maciejkiner

------------------------[jakos dziwnie tutaj dodaje nastepnego posta wiec musze to jakos wyroznic]------------------------

Witam

Pozwole sobie sam odpowiedziec. Bylo to banalne jak diabli ale jednak moja wiedza o WR byla za mala, zeby na to wpasc. Gotowa funkcja, jesli komus bedzie potrzebna:

  1. <?php
  2. function clearTag($text,$tag)
  3. {
  4. $text=eregi_replace('<'.$tag.'[^>]*>','',$text);
  5. return eregi_replace('</'.$tag.'[^>]*>','',$text);
  6. }
  7. ?>


I tym oto akcentem konczymy topic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Moze komus jeszcze sie przyda...

pzdr
maciejkiner

Ten post edytował maciejkiner 31.08.2006, 09:56:29
Go to the top of the page
+Quote Post

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: 23.08.2025 - 18:21