|
|
|
|
|
|
| |
| <?
/**
* 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;
}
?> | | |
|
| 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 | | | 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 | | | Produces browser-safe strings while preserving HTML tags. Categories : Strings, HTTP, PHP, HTML and PHP | | | Text Wrapping Categories : PHP, HTML and PHP, Strings | | | string justification align center text Categories : Strings, 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 | | | a function that builds an HTML select list from any mysql table. Categories : PHP, MySQL, HTML and PHP | | | Tag content retrieval from websites with preg_match Categories : PHP, Regexps, Arrays, HTML and PHP | | | Message of the Day - Random Message (Needs MySQL!) Categories : Databases, HTML and PHP, PHP, MySQL | | | Check parameters validity. Paranoia was designed to check the validity of the parameters that a php page will receive after a form submission. It can be used to check the variables sent by POST or GET Categories : Algorithms, HTML and PHP, PHP, Variables | | | Alternating background color for HTML table rows Categories : PHP, Databases, MySQL, HTML and PHP | | | Constantly refresh your PHP/HTML page data. Categories : PHP, HTML and PHP, Sybase | | | background music script for random notes in a frame Categories : PHP, Content Management, HTML and PHP | | | A very simple way to build and do a hierarchical html categories browser without javascript , just using html php and mySql
Categories : HTML and PHP, Databases, Algorithms, PHP, MySQL | |
|
|
|