<?
/**
* wrapstring() wraps HTML-string in order to it can't able to break design of HTML form
* The function create index list of all HTML tags of source and restore HTML-constructions after text transformation
* So the function wraps strings with HTML tags (e.g. <A HREF="">) to be displayed correctly
*
* @param $html Text to dividing.
* @param $max Max word size.
* @param $char character. Defaults to <BR />.
* @return The text with inserted $char character.
**/
function wrapstring ( $html , $max , $char = "<BR />" ) {
$words = array(); // Array of text words
$word = "" ; // A word of words array
$block = "" ;
$newword = "" ;
$pointer = 0 ;
$cursor = 0 ;
$index = 0 ;
$fetch = 0 ;
$text = "" ;
$lens = "" ;
$indexes = array(); // Array of stripped HTML-tags indexes
$text = $html = preg_replace ( "/<br\s?\/?>/is" , "<br /> " , trim ( $html ));
// Indexing model
// text<tag>text<tag>text
// [len0][tag0][len1][tag1][len2]
preg_match_all ( "/<(.*?)>/is" , $html , $mathes );
if( $mathes [ 0 ]) {
foreach( $mathes [ 0 ] as $block ) {
$indexes [ $index ][ "len" ] = ( $cursor = strpos ( $html , $block , $cursor )) - $pointer ;
$indexes [ $index ][ "tag" ] = $block ;
$pointer = $cursor + strlen ( $block );
$index ++;
}
}
$text = preg_replace ( "/(<.*?>)/is" , "" , $html );
$pointer = 0 ;
$cursor = 0 ;
$words = split ( ' ' , $text );
if( $words ) {
foreach ( $words as $index => $word ) {
$cursor += strlen ( $word );
if( strlen ( $word )> $max ) {
while( $pointer < strlen ( $word )) {
$newword .= substr ( $word , $pointer , $max ). $char ;
$pointer += $max ;
}
$words [ $index ] = $newword ;
if( $indexes ) {
$lens = 0 ;
foreach( $indexes as $key => $fetch ) {
$lens += $fetch [ "len" ];
if( $lens > $cursor ) { $indexes [ $key ][ "len" ] += ( strlen ( $newword )- strlen ( $word )); break; }
}
}
}
}
$text = join ( ' ' , $words );
}
$index = 0 ;
$cursor = "" ;
$words = array();
foreach( $indexes as $key => $fetch ) {
$words [ $index ++] = substr ( $text , $cursor , $fetch [ "len" ]);
$words [ $index ++] = $fetch [ "tag" ];
$cursor += $fetch [ "len" ];
}
$html = join ( "" , $words );
return $html ;
}
?>
Customizable encoding and decoding strings with security. Categories : PHP , Strings , HTML and PHP Pull deliniated text strings into a "SELECT" statement in a form. Categories : HTML and PHP , PHP , Strings function textwrap will wrap text to any desired width using <BR>\n as the default line break.
Default wrap width is 80 columns.
Categories : Strings , HTML and PHP , PHP string justification align center text Categories : Strings , PHP , HTML and PHP Text Wrapping Categories : PHP , HTML and PHP , Strings Produces browser-safe strings while preserving HTML tags. Categories : Strings , HTTP , PHP , HTML and PHP PHP3: Formmail. Just a cgi formmail, but than in PHP. It is easy to use! Categories : HTML and PHP , Email , PHP , Perl , HTML and PHP Parse string to find sub-string between two arbitrary strings Categories : PHP , Strings , HTML and PHP , Arrays Calendar using Date function Categories : HTML and PHP , PHP , Date Time , Calendar Save time debugging PHP3 under UNIX/Linux using linked .phps files Categories : HTML and PHP , Debugging , PHP How to find the name of the current file? Categories : PHP , Filesystem , Strings PageRank Display Categories : Search Engines , HTML and PHP , PHP mySQL/PHP/search with multientry
form and table output with colored rows Categories : PHP , Beginner Guides , MySQL , HTML and PHP , Databases Print out array key => value in colored HTML Categories : PHP , Arrays , HTML and PHP XTemplate, a template class for PHP Categories : PHP Classes , HTML and PHP , PHP