preg_replace hulp gevraagd
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.
Wie kan me vertellen wat hier fout is ?
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)
1
2
3
4
5
2
3
4
5
function remove_html_comments($source, &$smarty)
{
return preg_replace('/<!--.*-->/ums', ' ', $source);
}
$smarty->register_prefilter('remove_html_comments');
{
return preg_replace('/<!--.*-->/ums', ' ', $source);
}
$smarty->register_prefilter('remove_html_comments');
Wie kan me vertellen wat hier fout is ?
Gesponsorde koppelingen:
Zo misschien?:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
function remove_html_comments( $_sData )
{
return preg_replace('/\<!--.*?--\>/s', '', $_sData);
}
?>
function remove_html_comments( $_sData )
{
return preg_replace('/\<!--.*?--\>/s', '', $_sData);
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
Nee, die wil ook niet. Tnx anyway
Wat werkt er niet dan? Als ik de functie van Martijn als volgt toepas, werkt het gewoon:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
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);
?>
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
Hmz.. zal eens verder zoeken dan in Smarty. zoals hierboven zonder Smarty werkt het perfekt.
Bedankt heren !
Edit: is nu prima gelukt ;-)
Bedankt heren !
Edit: is nu prima gelukt ;-)
Gewijzigd op 01/01/1970 01:00:00 door Marcel K
Even voor de andere zoekers onder ons: wat was het probleem en wat was de oplossing?
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:
Zo voldoende info Arend ?
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)
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
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);
}
?>
/**
* 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



