Jump to content
php.lv forumi

HTML izfiltrēšana, līdzīgi kā BBCode


AndzX8-842

Recommended Posts

Šādi parasti pārveido no BBcode uz html.

$teksts = preg_replace('/[([biu])]/i', '<1>', $teksts);
$teksts = preg_replace('/[/([biu])]/i', '</1>', $teksts);

 

Ideja tāda, ka < un > varētu aizvietot ar < un >.

 

$teksts = preg_replace("<", "<",  $teksts);
$teksts = preg_replace(">", ">",  $teksts);
$teksts = preg_replace('/[([biu])]/i', '<1>', $teksts);
$teksts = preg_replace('/[/([biu])]/i', '</1>', $teksts);

 

Principā vispirms visi < un > tiktu pārveidoti par < un >. Pēctam tiktu filtrētu BBcode.

 

Gribēju pajautāt ko citi izmanto, lai veiktu to pašu uzdevumu un vai šis vispār droši?

Edited by AndzX8-842
Link to comment
Share on other sites

Teiksim, ja kāds kaut ko iebleiztu datu bāzē ar <?php ?> tad arī tie tiktu aizvietoti ar < un > un nestrādātu, javascript laikam arī pazūd jēga, ja < un > tiek aizstāti.

 

Tas htmlspecialchars() ir saprotams, ka visi < un > tiktu aizstāti vai tikai filtrē html tagus?

Edited by AndzX8-842
Link to comment
Share on other sites

Ko nozīmē "filtrēt html tegus"?

htmlspecialchars() iz manuāļa dara:

The translations performed are:

    *      '&' (ampersand) becomes '&'

    *      '"' (double quote) becomes '"' when ENT_NOQUOTES is not set.

    *      ''' (single quote) becomes ''' only when ENT_QUOTES is set.

    *      '<' (less than) becomes '<'

    *      '>' (greater than) becomes '>'

Link to comment
Share on other sites

×
×
  • Create New...