模块

HTML

HTML 辅助类。提供生成各种 HTML 标签的方法,使输出 HTML 更安全。

package
BootPHP
category
辅助类
author
Tinsh
copyright
© 2005-2016 Kilofox Studio

该类在 SYSPATH/classes/html.php 第 13 行声明。

属性

public static array $attribute_order

preferred order of attributes

array(28) (
	0 => string(6) "action"
	1 => string(6) "method"
	2 => string(4) "type"
	3 => string(2) "id"
	4 => string(4) "name"
	5 => string(5) "value"
	6 => string(4) "href"
	7 => string(3) "src"
	8 => string(5) "width"
	9 => string(6) "height"
	10 => string(4) "cols"
	11 => string(4) "rows"
	12 => string(4) "size"
	13 => string(9) "maxlength"
	14 => string(3) "rel"
	15 => string(5) "media"
	16 => string(14) "accept-charset"
	17 => string(6) "accept"
	18 => string(8) "tabindex"
	19 => string(9) "accesskey"
	20 => string(3) "alt"
	21 => string(5) "title"
	22 => string(5) "class"
	23 => string(5) "style"
	24 => string(8) "selected"
	25 => string(7) "checked"
	26 => string(8) "readonly"
	27 => string(8) "disabled"
)

public static boolean $windowed_urls

automatically target external URLs to a new window?

bool false

方法

public static anchor( string $uri [, string $title = NULL , array $attributes = NULL , mixed $protocol = NULL , boolean $index = bool true ] ) (在 HTML 中定义)

Create HTML link anchors. Note that the title is not escaped, to allow HTML elements within links (images, etc).

echo HTML::anchor('/user/profile', 'My Profile');

参数

  • string $uri required - URL || URI string
  • string $title = NULL - Link text
  • array $attributes = NULL - HTML anchor attributes
  • mixed $protocol = NULL - Protocol to pass to URL::base()
  • boolean $index = bool true - Include the index page

Tags

返回值

  • string

源代码

public static function anchor($uri, $title = NULL, array $attributes = NULL, $protocol = NULL, $index = true)
{
	if ($title === NULL)
	{
		// Use the URI as the title
		$title = $uri;
	}
	if ($uri === '')
	{
		// Only use the base URL
		$uri = URL::base($protocol, $index);
	}
	else
	{
		if (strpos($uri, '://') !== false)
		{
			if (HTML::$windowed_urls === true && empty($attributes['target']))
			{
				// Make the link open in a new window
				$attributes['target'] = '_blank';
			}
		}
		elseif ($uri[0] !== '#')
		{
			// Make the URI absolute for non-id anchors
			$uri = URL::site($uri, $protocol, $index);
		}
	}
	// Add the sanitized link to the attributes
	$attributes['href'] = $uri;
	return '<a' . HTML::attributes($attributes) . '>' . $title . '</a>';
}

public static attributes( [ array $attributes = NULL ] ) (在 HTML 中定义)

Compiles an array of HTML attributes into an attribute string. Attributes will be sorted using HTML::$attribute_order for consistency.

echo '<div'.HTML::attributes($attrs).'>'.$content.'</div>';

参数

  • array $attributes = NULL - Attribute list

返回值

  • string

源代码

public static function attributes(array $attributes = NULL)
{
	if (empty($attributes))
		return '';
	$sorted = array();
	foreach (HTML::$attribute_order as $key)
	{
		if (isset($attributes[$key]))
		{
			// Add the attribute to the sorted list
			$sorted[$key] = $attributes[$key];
		}
	}
	// Combine the sorted attributes
	$attributes = $sorted + $attributes;
	$compiled = '';
	foreach ($attributes as $key => $value)
	{
		if ($value === NULL)
		{
			// Skip attributes that have NULL values
			continue;
		}
		if (is_int($key))
		{
			// Assume non-associative keys are mirrored attributes
			$key = $value;
		}
		// Add the attribute value
		$compiled .= ' ' . $key . '="' . HTML::chars($value) . '"';
	}
	return $compiled;
}

public static chars( string $value [, boolean $double_encode = bool true ] ) (在 HTML 中定义)

Convert special characters to HTML entities. All untrusted content should be passed through this method to prevent XSS injections.

echo HTML::chars($username);

参数

  • string $value required - String to convert
  • boolean $double_encode = bool true - Encode existing entities

返回值

  • string

源代码

public static function chars($value, $double_encode = true)
{
	return htmlspecialchars((string) $value, ENT_QUOTES, 'UTF-8', $double_encode);
}

public static entities( string $value [, boolean $double_encode = bool true ] ) (在 HTML 中定义)

Convert all applicable characters to HTML entities. All characters that cannot be represented in HTML with the current character set will be converted to entities.

echo HTML::entities($username);

参数

  • string $value required - String to convert
  • boolean $double_encode = bool true - Encode existing entities

返回值

  • string

源代码

public static function entities($value, $double_encode = true)
{
	return htmlentities((string) $value, ENT_QUOTES, BootPHP::$charset, $double_encode);
}

public static file_anchor( string $file [, string $title = NULL , array $attributes = NULL , mixed $protocol = NULL , boolean $index = bool false ] ) (在 HTML 中定义)

Creates an HTML anchor to a file. Note that the title is not escaped, to allow HTML elements within links (images, etc).

echo HTML::file_anchor('media/doc/user_guide.pdf', 'User Guide');

参数

  • string $file required - Name of file to link to
  • string $title = NULL - Link text
  • array $attributes = NULL - HTML anchor attributes
  • mixed $protocol = NULL - Protocol to pass to URL::base()
  • boolean $index = bool false - Include the index page

Tags

返回值

  • string

源代码

public static function file_anchor($file, $title = NULL, array $attributes = NULL, $protocol = NULL, $index = false)
{
	if ($title === NULL)
	{
		// Use the file name as the title
		$title = basename($file);
	}
	// Add the file link to the attributes
	$attributes['href'] = URL::base($protocol, $index) . $file;
	return '<a' . HTML::attributes($attributes) . '>' . $title . '</a>';
}

public static image( string $file [, array $attributes = NULL , mixed $protocol = NULL , boolean $index = bool false ] ) (在 HTML 中定义)

Creates a image link.

echo HTML::image('media/img/logo.png', array('alt' => 'My Company'));

参数

  • string $file required - File name
  • array $attributes = NULL - Default attributes
  • mixed $protocol = NULL - Protocol to pass to URL::base()
  • boolean $index = bool false - Include the index page

Tags

返回值

  • string

源代码

public static function image($file, array $attributes = NULL, $protocol = NULL, $index = false)
{
	if (strpos($file, '://') === false)
	{
		// Add the base URL
		$file = URL::base($protocol, $index) . $file;
	}
	// Add the image link
	$attributes['src'] = $file;
	return '<img' . HTML::attributes($attributes) . '/>';
}

public static mailto( string $email [, string $title = NULL , array $attributes = NULL ] ) (在 HTML 中定义)

Creates an email (mailto:) anchor. Note that the title is not escaped, to allow HTML elements within links (images, etc).

echo HTML::mailto($address);

参数

  • string $email required - Email address to send to
  • string $title = NULL - Link text
  • array $attributes = NULL - HTML anchor attributes

Tags

返回值

  • string

源代码

public static function mailto($email, $title = NULL, array $attributes = NULL)
{
	if ($title === NULL)
	{
		// Use the email address as the title
		$title = $email;
	}
	return '<a href="&#109;&#097;&#105;&#108;&#116;&#111;&#058;' . $email . '"' . HTML::attributes($attributes) . '>' . $title . '</a>';
}

public static script( string $file [, array $attributes = NULL , mixed $protocol = NULL , boolean $index = bool false ] ) (在 HTML 中定义)

Creates a script link.

echo HTML::script('media/js/jquery.min.js');

参数

  • string $file required - File name
  • array $attributes = NULL - Default attributes
  • mixed $protocol = NULL - Protocol to pass to URL::base()
  • boolean $index = bool false - Include the index page

Tags

返回值

  • string

源代码

public static function script($file, array $attributes = NULL, $protocol = NULL, $index = false)
{
	if (strpos($file, '://') === false)
	{
		// Add the base URL
		$file = URL::base($protocol, $index) . $file;
	}
	// Set the script link
	$attributes['src'] = $file;
	// Set the script type
	$attributes['type'] = 'text/javascript';
	return '<script' . HTML::attributes($attributes) . '></script>';
}

public static style( string $file [, array $attributes = NULL , mixed $protocol = NULL , boolean $index = bool false ] ) (在 HTML 中定义)

Creates a style sheet link element.

echo HTML::style('media/css/screen.css');

参数

  • string $file required - File name
  • array $attributes = NULL - Default attributes
  • mixed $protocol = NULL - Protocol to pass to URL::base()
  • boolean $index = bool false - Include the index page

Tags

返回值

  • string

源代码

public static function style($file, array $attributes = NULL, $protocol = NULL, $index = false)
{
	if (strpos($file, '://') === false)
	{
		// Add the base URL
		$file = URL::base($protocol, $index) . $file;
	}
	// Set the stylesheet link
	$attributes['href'] = $file;
	// Set the stylesheet rel
	$attributes['rel'] = 'stylesheet';
	// Set the stylesheet type
	$attributes['type'] = 'text/css';
	return '<link' . HTML::attributes($attributes) . '/>';
}