Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function html_substr($text, $max_str) {
- $qsingle = $qdouble = $pembuka = $penutup = $ambiltagawal = false;
- $n_text = strip_tags($text);
- $tagnya = $res = "";
- $alltag = array();
- $i = $n = 0;
- while ($n<$max_str AND $i<strlen($text) AND $n<strlen($n_text)) {
- $tanda = $text[$i];
- $res .= $tanda;
- switch ($tanda) {
- case ' ':
- if (!$pembuka) { $n++; } else { $ambiltagawal = false; }
- break;
- case '<':
- $ambiltagawal = $pembuka = true;
- break;
- case '>':
- if ($pembuka) {
- array_push($alltag, $tagnya);
- $pembuka = $ambiltagawal = false;
- $tagnya = "";
- } elseif ($penutup) {
- array_pop($alltag);
- $tagnya = "";
- $penutup = false;
- }
- break;
- case '/':
- if ($pembuka AND !$qdouble AND !$qsingle) {
- $pembuka = $ambiltagawal = false;
- $penutup = true;
- }
- break;
- case '"':
- $qdouble = ($qdouble)?false:true;
- break;
- case "'":
- $qsingle = ($qsingle)?false:true;
- break;
- default:
- if ($ambiltagawal OR $penutup) {
- $tagnya .= $tanda;
- } elseif (!$pembuka AND !$penutup) {
- $n++;
- }
- }
- $i++;
- }
- while ($alltag) {
- $res .= "</".array_pop($alltag).">";
- }
- return $res;
- }
Advertisement
Add Comment
Please, Sign In to add comment