构建HTML

目录

HTML

当需要在在视图中展现用户输入的内容时, 非常重要的一点是把所有可能含有HTML标识符的字符串转换为他们的"实体(entity)"形式.

例如, '<'符号需要被转换为它的形式. 把HTML字符转换为它们的实体形式, 有助于保护您的应用程序防止跨站脚本攻击.

把字符串转换为它的实体形式:

echo HTML::entities('<script>alert('hi');</script>');

利用全局"e"函数, 等同于"HTML::entities":

echo e('<script>alert('hi');</script>');

脚本和样式表

生成一个JavaScript文件的引用:

echo HTML::script('js/scrollTo.js');

生成一个CSS文件的引用:

echo HTML::style('css/common.css');

使用给定媒体类型(media type)的生成一个CSS文件的引用:

echo HTML::style('css/common.css', 'print');
//screen:指计算机屏幕. 

  //print:指用于打印机的不透明介质.   //projection:指用于显示的项目.   //braille:盲文系统, 指有触觉效果的印刷品.   //aural:指语音电子合成器.   //tv:指电视类型的媒体.   //handheld:指手持式显示设备(小屏幕, 单色)   //all:适合于所有媒体.

更多相关:

链接

从URI中生成链接:

echo HTML::link('user/profile', 'User Profile');

生成安全的HTTPS链接:

echo HTML::secure_link('user/profile', 'User Profile');

生成一个包含其他HTML属性的链接:

echo HTML::link('user/profile', 'User Profile', array('id' => 'profile_link'));

链接到基于名字的路由

生成一个基于名字的路由的链接:

echo HTML::link_to_route('profile');

生成一个传入通配值的基于名字的路由的链接:

$url = HTML::link_to_route('profile', array($username));

更多相关:

链接到控制器动作

生成一个到控制器动作的链接:

echo HTML::link_to_action('home@index');

生成一个传入通配值的到控制器动作的链接:

echo HTML::link_to_action('user@profile', array($username));

Mail-To链接

HTML类的"mailto"方法混淆了给定的email地址, 所以他不会被自动化程序抓取到.

生成一个Mail-To链接:

echo HTML::mailto('example@gmail.com', 'E-Mail Me!');

生成一个Mail-To链接并以email地址作为链接文本:

echo HTML::mailto('example@gmail.com');

图片

生成一个图片标签:

echo HTML::image('img/smile.jpg', $alt_text);

生成一个带有额外HTML属性的图片标签:

echo HTML::image('img/smile.jpg', $alt_text, array('id' => 'smile'));

列表

从一个数组中生成html列表:

echo HTML::ol(array('Get Peanut Butter', 'Get Chocolate', 'Feast'));

echo HTML::ul(array('Ubuntu', 'Snow Leopard', 'Windows'));

自定义宏(Macros)

很简单就可以定义你自己的HTML类方法, 我们称之为"宏(macros)". 方式如下, 首先用一个给定的名称和闭包函数注册这个宏.

注册一个自定义HTML宏:

HTML::macro('my_element', function()
{
    return '<article type="awesome">';
});

现在你可以调用自定义的宏了:

调用一个自定义HTML宏

echo HTML::my_element();