Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Doncrawler - filter
Forum PHP.pl > Forum > PHP
Pyton_000
Mam sobie HTML:

  1. <div>
  2. <div>
  3. <p>
  4. <pre>Test</pre>
  5. </p>
  6. <p>
  7. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab architecto esse harum illo iste modi mollitia obcaecati repudiandae suscipit unde! Architecto atque blanditiis dignissimos dolorem molestiae quia recusandae sunt tenetur.
  8. </p>
  9. <pre>
  10. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad aliquid atque consectetur deserunt dolorem doloremque earum hic illum impedit ipsa ipsam molestias nihil non quasi quidem repellat, soluta suscipit unde.
  11. </pre>
  12. </div>
  13. </div>


Chciałbym zrobić sobie filter na 'pre' a konkretnie chcę zrobić htmlentities. Jednak nie chcę wyciągać samego pre ale "zamienić" oryginalne "pre" na przefiltrowane.

Jakiś prosty i szybki sposób?

To co mam:
  1. $crawler = new Crawler($content);
  2.  
  3. $crawler->filter('pre > code')->each(function(Crawler $node, $i) {
  4. return htmlentities($node->html());
  5. });
kpt_lucek
Może tak?
Pyton_000
Przecież to robi dokładnie to samo... tylko inaczej opakowane...

[EDITED]

Dobra, na razie nie chce mi się kombinować więc prostym i sprawdzonym sposobem dałem sobie tak:
  1. return preg_replace_callback('/(<code.*?>)(.*?)(<\/code>)/s', function ($match) {
  2.  
  3. $content = htmlentities($match[2], ENT_COMPAT | ENT_HTML401, ini_get("default_charset"), false);
  4.  
  5. return $match[1] . $content . $match[3];
  6. }, $content);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.