db, "SELECT text, file FROM text WHERE id = '$id' AND lang = '" . $model->lang . "';"); $r = mysqli_fetch_array($q); if (strlen($r["file"]) > 0){ return file_get_contents($path["string"] . $r["file"]); } else{ return $r["text"]; } } /** * This function closes all the opened HTML tags in a given string. * * @param string html The string with HTML tags. * @return string HTML with closed tags. */ function close_tags($html) { $result = []; preg_match_all("#<(?!meta|img|br|hr|input\b)\b([a-z]+)(?: .*)?(?#iU", $html, $result); $openedtags = $result[1]; preg_match_all("##iU", $html, $result); $closedtags = $result[1]; $len_opened = count($openedtags); if (count($closedtags) == $len_opened) { return $html; } $openedtags = array_reverse($openedtags); for ($i=0; $i < $len_opened; $i++) { if (!in_array($openedtags[$i], $closedtags)) { $html .= ""; } else { unset($closedtags[array_search($openedtags[$i], $closedtags)]); } } return $html; } /** * Text shortener. Given a string, it trims in the proximity of the * desired string, up to the next white character. If indicated, it will * append a link to the full text. * * @param string $text The text to shorten. * @param int $length The desired length. * @param string $link_text Text for the link. Optional. * @param string $link URI of the link. * @return string Shortened text. */ function cut_text($text, $length, $link_text = "", $link = ""){ if (strlen($text) < $length){ return $text; } $cut = substr($text, 0, strpos($text, " ", $length)); $cut = close_tags($cut); if (strlen($cut) == 0){ $cut = $text; } if (strlen($text) != strlen($cut) && strlen($link) > 0 && strlen($link_text) > 0){ $cut = $cut . "... $link_text"; } return $cut; } ?>