Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zaawansowana filtracja stringu
elmozaur
post
Post #1





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


Witajcie.
W czasie moich zmagan z konwersjia html do pdf doszedlem do etapu w ktorym potrzebuje wyfiltrowac ze stringu pewne informacje.
Aby lepiej pokazac o co mi chodzi pokaze zmienne:

mam takie zmienne
  1. <?php
  2. $text1='<p style="color:white">a1</p>';
  3. $text2='<p style="margin-top:2cm">a1</p>';
  4. $text3='<div style="border:solid 1px green">a1</div>';
  5. ?>


w wyniku filtracji chce uzyskac:
  1. <?php
  2. $text1='<p>a1</p>';
  3. $text2='<p>a1</p>';
  4. $text3='<div>a1</div>';
  5. ?>


Czy jakims wyrazeniem regularnym mozna wykasowac style w tagach ?
za info dziekuje i pozdrawiam
Go to the top of the page
+Quote Post
peter_zan
post
Post #2





Grupa: Zarejestrowani
Postów: 19
Pomógł: 3
Dołączył: 17.03.2009

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


Google?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

  1. <?php
  2. function stripArgumentFromTags( $htmlString ) {
  3.    $regEx = '/([^<]*<s*[a-z](?:[0-9]|[a-z]{0,9}))(?:(?:s*[a-z-]{2,14}s*=s*(?:"[^"]*"|'[^']*'))*)(s*/?>[^<]*)/i'; // match any start tag
  4.  
  5.    $chunks = preg_split($regEx, $htmlString, -1,  PREG_SPLIT_DELIM_CAPTURE);
  6.    $chunkCount = count($chunks);
  7.  
  8.    $strippedString = '';
  9.    for ($n = 1; $n < $chunkCount; $n++) {
  10.        $strippedString .= $chunks[$n];
  11.    }
  12.  
  13.    return $strippedString;
  14. }

Źródło.

pzdr
PZ
Go to the top of the page
+Quote Post
TheaSiX
post
Post #3





Grupa: Zarejestrowani
Postów: 110
Pomógł: 10
Dołączył: 3.09.2006
Skąd: Bishop Auckland

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


wystarczy jednak, że ktoś zapomni wartości atrybutów dać w cudzysłów i kod jest do niczego..
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Spróbuj tak:

Kod
preg_match_all('/^<([a-z]+)(.*)>(.*)<\/([a-z]+)>$/i', $_GET['html'], $matches, PREG_PATTERN_ORDER);
    
    echo '<pre>';
        print_r($matches);
    echo '</pre>';


U mnie chodzi (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)
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: 4.10.2025 - 13:58