Versio

preg_replace hulp gevraagd

Overzicht Reageren

Marcel K

Marcel K

25/02/2007 12:43:00
Quote Anchor link
Ik ben bezig met Smarty, en wil comment in mijn templates filteren voor output.
Alles wat tussen <!-- --> staat moet eruit gefilterd worden.

nu heb ik de volgende functie uit een boekje over Smarty gehaald maar hij werkt niet.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
function remove_html_comments($source, &$smarty)
{
    return preg_replace('/<!--.*-->/ums', ' ', $source);
}
$smarty->register_prefilter('remove_html_comments');


Wie kan me vertellen wat hier fout is ?
 
PHP hulp

PHP hulp

25/05/2012 11:39:06
Gesponsorde koppelingen:
 
Martijn B

Martijn B

25/02/2007 13:04:00
Quote Anchor link
Zo misschien?:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
function remove_html_comments( $_sData )
{

    return preg_replace('/\<!--.*?--\>/s', '', $_sData);
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Marcel K

Marcel K

25/02/2007 19:19:00
Quote Anchor link
Nee, die wil ook niet. Tnx anyway
 
Joren de Wit
Beheerder

Joren de Wit

25/02/2007 19:46:00
Quote Anchor link
Wat werkt er niet dan? Als ik de functie van Martijn als volgt toepas, werkt het gewoon:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
function remove_html_comments( $_sData )
{

    return preg_replace('/\<!--.*?--\>/s', '', $_sData);
}


$text = 'Een stuk tekst waar
ook een <!-- deel commentaar in staat --> wat er dus uit-gefilterd
zou <!-- moeten --> worden.'
;

echo remove_html_comments($text);
?>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Marcel K

Marcel K

25/02/2007 19:58:00
Quote Anchor link
Hmz.. zal eens verder zoeken dan in Smarty. zoals hierboven zonder Smarty werkt het perfekt.

Bedankt heren !

Edit: is nu prima gelukt ;-)
Gewijzigd op 01/01/1970 01:00:00 door Marcel K
 
Arend a

Arend a

25/02/2007 22:03:00
Quote Anchor link
Even voor de andere zoekers onder ons: wat was het probleem en wat was de oplossing?
 
Marcel K

Marcel K

26/02/2007 01:01:00
Quote Anchor link
Probleem:
Ik ben met smarty aan het spelen en in mijn templates zet ik html-commentaar zoals b.v. <!-- start van wrapper-div -->
zodra de code gecompileerd is en naar de gebruiker wordt gestuurd wil ik alle html-comments verwijderd hebben evenals de white-space regels.
Alle beetjes die niet overgestuurd moeten worden helpen nietwaar ?
Ik had de code eerst ergens in de standaard source gezet en geregistreerd, dat werkte dus niet, dus heb er toen een plugin van gemaakt en werkte het wel.

Oplossing:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
/**
 * Smarty plugin
 * @package Smarty
 * @subpackage plugins
 */

/**
 * Smarty remove html comments outputfilter plugin
 *
 * File:     outputfilter.trimhtmlcomment.php<br>
 * Type:     outputfilter<br>
 * Name:     trimhtmlcomment<br>
 * Date:     25 februari 2007<br>
 * Purpose:  Removes html-comments like <!-- --> and everything between it
 * Install:  Drop into the plugin directory, call
 *           <code>$smarty->load_filter('output','trimhtmlcomment');</code>
 *           from application.
 *           To cleanup the new whitespace also call:
 *           <code>$smarty->load_filter('output','trimwhitespace');</code>
 *
 * @param string
 * @param Smarty
 */


function smarty_outputfilter_trimhtmlcomment($source, &$smarty)
{

    return preg_replace('/\<!--.*?--\>/s', '', $source);
}


?>


Zo voldoende info Arend ?
Gewijzigd op 01/01/1970 01:00:00 door Marcel K
 



Overzicht Reageren