sanitize_sql_orderby()保证输入的字符串是合法的SQL Order by语句

目录

描述

保证输入的字符串是 法的 SQL Order by 语句。

支持一个或者多个 段,可 有或者没有 ASC/DESC,并且也接受 RAND()  键字。

sanitize_sql_orderby() 描述

用法

<?php sanitize_sql_orderby$orderby ); ?>

sanitize_sql_orderby() 用法

参数

$orderby

(string) (必填) 需  测的 SQL Order by 语句。

默认值: None

sanitize_sql_orderby() 参数

返回值

(string | boolean) 

 适配返回 Order by 语句,否则返回 false。

sanitize_sql_orderby() 返回值

历史

添加于 版本: 2.5.1

sanitize_sql_orderby() 历史

源文件

sanitize_sql_orderby() 函数的代码位于 /wp-includes/formatting.php.

/* ----------------------------------
 * wordpress之魂 © http://wphun.com
 * ---------------------------------- */
/**
 * Ensures a string is a valid SQL 'order by' clause.
 *
 * Accepts one or more columns, with or without a sort order (ASC / DESC).
 * e.g. 'column_1', 'column_1, column_2', 'column_1 ASC, column_2 DESC' etc.
 *
 * Also accepts 'RAND()'.
 *
 * @since 2.5.1
 *
 * @param string $orderby Order by clause to be validated.
 * @return string|false Returns $orderby if valid, false otherwise.
 */
function sanitize_sql_orderby( $orderby ) {
	if ( preg_match( '/^s*(([a-z0-9_]+|`[a-z0-9_]+`)(s+(ASC|DESC))?s*(,s*(?=[a-z0-9_`])|$))+$/i', $orderby ) || preg_match( '/^s*RAND(s*)s*$/i', $orderby ) ) {
		return $orderby;
	}
	return false;
}

sanitize_sql_orderby() 源文件