webForumDet fria alternativet

Stänga alla html-tags i rätt ordning

PHP

6 svar · 693 visningar · startad av noshornin

Medlem sedan aug. 2008815 inlägg
Frågan#1

jag vill skriva en funktion som stänger alla öppna html tags i rätt ordning.

Alltså om det står: "<b>hej<i><i><i><i><i></b>"
Vill jag inte att det blir: "<b>hej<i><i><i><i><i></b></i></i></i></i></i>"
Utan jag vill att det ska bli: "<b>hej<i><i><i><i><i></i></i></i></i></i></b>"
eller ännu hellre: "<b>hej</b>" om det går.

Någon som kan ge tips på hur jag ska skriva funktionen?

Medlem sedan juni 20019 519 inlägg
#2

http://stackoverflow.com/questions/3059398/how-to-close-unclosed-html-tags har en funktion du skulle kunna kanske använda dig av.

Medlem sedan aug. 2008815 inlägg
#3

voigtann1 skrev:

http://stackoverflow.com/questions/3059398/how-to-close-unclosed-html-tags har en funktion du skulle kunna kanske använda dig av.

Nah inte riktigt.
Den ger: "<b>hej<i><i><i><i><i></b></i></i></i></i></i>"

Funktionen behöver inte heller ha stöd för alla tags utan det räcker med <b> och <i>

Medlem sedan juni 20019 519 inlägg
Medlem sedan aug. 2008815 inlägg
#5

voigtann1 skrev:

http://de3.php.net/manual/en/book.tidy.php

Jag får det inte att funka. Jag provade:

<?php
ob_start();
?>

<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>error</i>
  </body>
</html>

<?php

$buffer = ob_get_clean();
$tidy = new tidy();
$clean = $tidy->repairString($buffer);

echo $clean;
?>

Men ingenting skrevs ut

Medlem sedan mars 2006296 inlägg
#6

Har du servern konfigurerad så den visar alla felmeddelanden?
Annars:

error_reporting(E_ALL);
ini_set('display_errors', '1');

Har du PHP5 + installerat så följer Tidy med men ändre versioner så måste det installeras på servern först. (http://www.php.net/manual/en/tidy.installation.php)

Medlem sedan aug. 2008815 inlägg
#7

Nate.A skrev:

Har du servern konfigurerad så den visar alla felmeddelanden?
Annars:

error_reporting(E_ALL);
ini_set('display_errors', '1');

Har du PHP5 + installerat så följer Tidy med men ändre versioner så måste det installeras på servern först. (http://www.php.net/manual/en/tidy.installation.php)

Ska testa det ikväll. Jag har sidan på brinkster så det är php 5. Nu ska jag till småland på semester med mamsen och papsen :birp

302 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
150 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
164 ms — ändringar (db)