public static function write($name, $value, $expires = null) { $self = self::getInstance(); $expires = $self->expire($expires); $path = Mapper::normalize(Mapper::base() . $self->path); return setcookie($self->name . '[' . $name . ']', self::encrypt($value), $expires, $path, $self->domain, $self->secure); }
public function parse($text, $use_emoticons = true, $emoticons_path = "/images/emoticons/") { $text = trim($text); $this->use_emoticons = $use_emoticons; $this->emoticons_path = $emoticons_path; $smiles = $this->smiles; // BBCode [code] if (!function_exists('escape')) { function escape($s) { global $text; $text = strip_tags($text); $code = $s[1]; $code = htmlspecialchars($code); $code = str_replace("[", "[", $code); $code = str_replace("]", "]", $code); return '<pre><code>' . $code . '</code></pre>'; } } $text = preg_replace_callback('/\\[code\\](.*?)\\[\\/code\\]/ms', "escape", $text); // BBCode to find... $in = array('/\\[b\\](.*?)\\[\\/b\\]/ms', '/\\[i\\](.*?)\\[\\/i\\]/ms', '/\\[u\\](.*?)\\[\\/u\\]/ms', '/\\[img\\](.*?)\\[\\/img\\]/ms', '/\\[email\\](.*?)\\[\\/email\\]/ms', '/\\[url](.*?)\\[\\/url\\]/ms', '/\\[url\\="([^\\"]+)"\\](.*?)\\[\\/url\\]/ms', '/\\[size\\="?(.*?)"?\\](.*?)\\[\\/size\\]/ms', '/\\[color\\="?(.*?)"?\\](.*?)\\[\\/color\\]/ms', '/\\[quote](.*?)\\[\\/quote\\]/ms', '/\\[list\\=(.*?)\\](.*?)\\[\\/list\\]/ms', '/\\[list\\](.*?)\\[\\/list\\]/ms', '/\\[\\*\\]\\s?(.*?)\\n/ms'); // And replace them by... $out = array('<strong>\\1</strong>', '<em>\\1</em>', '<u>\\1</u>', '<img src="' . Mapper::base() . '\\/images\\/\\1" alt="\\1" />', '<a href="mailto:\\1">\\1</a>', '<a href="' . Mapper::base() . '\\1' . '">\\1</a>', '<a href="' . Mapper::base() . '\\1' . '">\\2</a>', '<span style="font-size:\\1%">\\2</span>', '<span style="color:\\1">\\2</span>', '<blockquote>\\1</blockquote>', '<ol start="\\1">\\2</ol>', '<ul>\\1</ul>', '<li>\\1</li>'); $text = preg_replace($in, $out, $text); if ($this->use_emoticons) { foreach ($smiles as $key => $smile) { $smiles[$key] = $this->mapSmiles(strtolower($key), $smile); } $text = str_replace(array_keys($smiles), $smiles, $text); } // paragraphs $text = str_replace("\r", "", $text); $text = "<p>" . preg_replace("%(\n){2,}%", "</p><p>", $text) . "</p>"; $text = nl2br($text); // clean some tags to remain strict // not very elegant, but it works. No time to do better ;) if (!function_exists('removeBr')) { function removeBr($s) { return str_replace("<br />", "", $s[0]); } } $text = preg_replace_callback('/<pre>(.*?)<\\/pre>/ms', "removeBr", $text); $text = preg_replace('/<p><pre>(.*?)<\\/pre><\\/p>/ms', "<pre>\\1</pre>", $text); $text = preg_replace_callback('/<ul>(.*?)<\\/ul>/ms', "removeBr", $text); $text = preg_replace('/<p><ul>(.*?)<\\/ul><\\/p>/ms', "<ul>\\1</ul>", $text); return $text; }