Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F391117
outputfilter.trimwhitespace.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
outputfilter.trimwhitespace.php
View Options
<?php
/**
* Smarty plugin
* @package Smarty
* @subpackage PluginsFilter
*/
/**
* Smarty trimwhitespace outputfilter plugin
*
* File: outputfilter.trimwhitespace.php<br>
* Type: outputfilter<br>
* Name: trimwhitespace<br>
* Date: Jan 25, 2003<br>
* Purpose: trim leading white space and blank lines from
* template source after it gets interpreted, cleaning
* up code and saving bandwidth. Does not affect
* <<PRE>></PRE> and <SCRIPT></SCRIPT> blocks.<br>
* Install: Drop into the plugin directory, call
* <code>$smarty->load_filter('output','trimwhitespace');</code>
* from application.
* @author Monte Ohrt <monte at ohrt dot com>
* @author Contributions from Lars Noschinski <lars@usenet.noschinski.de>
* @version 1.3
* @param string $source input string
* @param object &$smarty Smarty object
* @return string filtered output
*/
function
smarty_outputfilter_trimwhitespace
(
$source
,
$smarty
)
{
// Pull out the script blocks
preg_match_all
(
"!<script[^>]*?>.*?</script>!is"
,
$source
,
$match
);
$_script_blocks
=
$match
[
0
];
$source
=
preg_replace
(
"!<script[^>]*?>.*?</script>!is"
,
'@@@SMARTY:TRIM:SCRIPT@@@'
,
$source
);
// Pull out the pre blocks
preg_match_all
(
"!<pre[^>]*?>.*?</pre>!is"
,
$source
,
$match
);
$_pre_blocks
=
$match
[
0
];
$source
=
preg_replace
(
"!<pre[^>]*?>.*?</pre>!is"
,
'@@@SMARTY:TRIM:PRE@@@'
,
$source
);
// Pull out the textarea blocks
preg_match_all
(
"!<textarea[^>]*?>.*?</textarea>!is"
,
$source
,
$match
);
$_textarea_blocks
=
$match
[
0
];
$source
=
preg_replace
(
"!<textarea[^>]*?>.*?</textarea>!is"
,
'@@@SMARTY:TRIM:TEXTAREA@@@'
,
$source
);
// remove all leading spaces, tabs and carriage returns NOT
// preceeded by a php close tag.
$source
=
trim
(
preg_replace
(
'/((?<!
\?
>)
\n
)[
\s
]+/m'
,
'
\1
'
,
$source
));
// replace textarea blocks
smarty_outputfilter_trimwhitespace_replace
(
"@@@SMARTY:TRIM:TEXTAREA@@@"
,
$_textarea_blocks
,
$source
);
// replace pre blocks
smarty_outputfilter_trimwhitespace_replace
(
"@@@SMARTY:TRIM:PRE@@@"
,
$_pre_blocks
,
$source
);
// replace script blocks
smarty_outputfilter_trimwhitespace_replace
(
"@@@SMARTY:TRIM:SCRIPT@@@"
,
$_script_blocks
,
$source
);
return
$source
;
}
function
smarty_outputfilter_trimwhitespace_replace
(
$search_str
,
$replace
,
&
$subject
)
{
$_len
=
strlen
(
$search_str
);
$_pos
=
0
;
for
(
$_i
=
0
,
$_count
=
count
(
$replace
);
$_i
<
$_count
;
$_i
++)
if
((
$_pos
=
strpos
(
$subject
,
$search_str
,
$_pos
))!==
false
)
$subject
=
substr_replace
(
$subject
,
$replace
[
$_i
],
$_pos
,
$_len
);
else
break
;
}
?>
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, Feb 22, 20:21 (15 h, 47 m ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25584
Default Alt Text
outputfilter.trimwhitespace.php (2 KB)
Attached To
rZED Zed
Event Timeline
Log In to Comment