本文整理汇总了PHP中filter_id函数的典型用法代码示例。如果您正苦于以下问题:PHP filter_id函数的具体用法?PHP filter_id怎么用?PHP filter_id使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了filter_id函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testExpects
public function testExpects()
{
//$ff = new FortissimoHarness(self::config);
$cmd = new SimpleCommandTest('test');
$expectations = $cmd->expects();
$params = $expectations->params();
$this->assertEquals(4, count($params), 'Command has four arguments');
// Since params should be in order, we can shift them off the top:
$testString = array_shift($params);
$this->assertEquals('testString', $testString->getName());
$this->assertEquals('A test string', $testString->getDescription());
$testNumeric = array_shift($params);
$this->assertEquals('testNumeric', $testNumeric->getName());
// Count filters:
$filters = $testNumeric->getFilters();
$this->assertEquals(1, count($filters));
$this->assertEquals('float', $filters[0]['type']);
$this->assertNull($filters[0]['options']);
// Manually execute a filter:
$this->assertEquals(7.5, filter_var(7.5, filter_id($filters[0]['type']), NULL));
// Test a failed filter:
$this->assertFalse(filter_var('matt', filter_id($filters[0]['type']), NULL), 'String is not a float.');
// Test callbacks
$testNumeric2 = array_shift($params);
$filters = $testNumeric2->getFilters();
$this->assertEquals('callback', $filters[0]['type']);
$this->assertTrue($filters[0]['options']['options'][0] instanceof SimpleValidatorTest, 'Option callback is a SimpleValidatorTest');
$this->assertEquals(7, filter_var(3.5, FILTER_CALLBACK, $filters[0]['options']));
}
示例2: doListFilters
/**
* Lists all filters available with the filter extension.
*/
public function doListFilters()
{
$list = filter_list();
foreach ($list as $filter) {
echo filter_id($filter), ": {$filter}<br />\n";
}
}
示例3: parseInputFromData
private function parseInputFromData($useOverride)
{
$this->allElementsValid = true;
foreach ($this->definition as $elementName => $inputElement) {
$hasVariable = isset($this->inputData[$elementName]) || $useOverride == true && isset($_GET[$elementName]);
if (!$hasVariable) {
if ($inputElement->type === ezcInputFormDefinitionElement::REQUIRED) {
throw new ezcInputFormVariableMissingException($elementName);
} else {
$this->properties[$elementName] = ezcInputForm::INVALID;
$this->allElementsValid = false;
continue;
}
}
if ($useOverride == true && isset($_GET[$elementName])) {
$flags = FILTER_NULL_ON_FAILURE | $inputElement->flags;
$value = filter_var(isset($_GET[$elementName]) ? $_GET[$elementName] : null, filter_id($inputElement->filterName), array('options' => $inputElement->options, 'flags' => $flags));
} else {
$flags = FILTER_NULL_ON_FAILURE | $inputElement->flags;
$value = filter_var($this->inputData[$elementName], filter_id($inputElement->filterName), array('options' => $inputElement->options, 'flags' => $flags));
}
if ($value !== null) {
$this->properties[$elementName] = ezcInputForm::VALID;
$this->propertyValues[$elementName] = $value;
} else {
$this->properties[$elementName] = ezcInputForm::INVALID;
$this->allElementsValid = false;
}
}
}
示例4: getRegisteredFilters
/**
* Gets all possible filter types
*
* @return array
*/
static function getRegisteredFilters()
{
if (empty(self::$filtersTypes)) {
foreach (filter_list() as $filter_name) {
self::$filtersTypes[filter_id($filter_name)] = $filter_name;
}
}
return self::$filtersTypes;
}
示例5: generator_file
/**
* Generates a unique file name in given path
*
* @param string $str
* @param string $path
*
* @return string
*/
function generator_file(string $str, string $path) : string
{
$parts = explode('.', $str);
$ext = array_pop($parts);
$str = filter_id(implode('-', $parts));
if (file_exists($path . '/' . $str . '.' . $ext)) {
$str .= '-';
for ($i = 1; file_exists($path . '/' . $str . $i . '.' . $ext); $i++) {
}
$str .= $i;
}
return $str . '.' . $ext;
}
示例6: get
/**
* @param string $name
* @param int $filter
* @param array|null $options
* @return mixed
*/
public function get($name, $filter = FILTER_DEFAULT, $options = null)
{
if (is_string($filter)) {
$filter = filter_id($filter);
}
if ($this->data !== null) {
if (array_key_exists($name, $this->data)) {
$value = filter_var($this->data[$name], $filter, $options);
} else {
$value = $this->optionFlags($options) & FILTER_NULL_ON_FAILURE ? false : null;
}
} else {
$value = filter_input($this->type, $name, $filter, $options);
}
return $value;
}
示例7: __construct
public function __construct($reqArgs, Array $sieve) {
$valueArr = array_merge($_GET, $_POST, $reqArgs);
foreach ($valueArr as $k => $v) {
if (isset($sieve[$k])) {
$this->_gpVars[$k]['value'] = filter_var($valueArr[$k], filter_id($sieve[$k]));
$this->_gpVars[$k]['sieved'] = true;
}
$this->_gpVars[$k]['value'] = $v;
unset($sieve[$k]);
}
if (0 !== count(array_keys($sieve))) {
throw new \Exception("Expected params were not given.");
}
}
示例8: filter
/**
* 使用filter_var方式验证
* @access protected
* @param mixed $value 字段值
* @param mixed $rule 验证规则
* @return bool
*/
protected function filter($value, $rule)
{
if (is_string($rule) && strpos($rule, ',')) {
list($rule, $param) = explode(',', $rule);
} elseif (is_array($rule)) {
$param = isset($rule[1]) ? $rule[1] : null;
} else {
$param = null;
}
return false !== filter_var($value, is_int($rule) ? $rule : filter_id($rule), $param);
}
示例9: filterPHP
public function filterPHP($options)
{
if (!count($options)) {
throw new \RuntimeException('Missing mandatory option: filter name');
}
$name = $options[0];
return function (&$field) use($name) {
if ($field !== '') {
$filtered = filter_var($field, filter_id($name));
if ($filtered === FALSE) {
return FALSE;
}
$field = $filtered;
}
return TRUE;
};
}
示例10: filter
/**
* 递归过滤给定的值
* @param mixed $value 键值
* @param mixed $key 键名
* @param array $filters 过滤方法+默认值
* @return mixed
*/
private static function filter(&$value, $key, $filters)
{
// 分离出默认值
$default = array_pop($filters);
foreach ($filters as $filter) {
if (is_callable($filter)) {
// 调用函数过滤
$value = call_user_func($filter, $value);
} else {
$begin = substr($filter, 0, 1);
if (in_array($begin, ['/', '#', '~']) && $begin == ($end = substr($filter, -1))) {
// 正则过滤
if (!preg_match($filter, $value)) {
// 匹配不成功返回默认值
$value = $default;
break;
}
} else {
// filter函数不存在时, 则使用filter_var进行过滤
// filter为非整形值时, 调用filter_id取得过滤id
$value = filter_var($value, is_int($filter) ? $filter : filter_id($filter));
if (false === $value) {
// 不通过过滤器则返回默认值
$value = $default;
break;
}
}
}
}
self::filterExp($value);
}
示例11: getData
/**
* 获取系统变量 支持过滤和默认值
* @access public
*
* @param $name
* @param $input
* @param $filter
* @param $default
*
* @return mixed
* @internal param string $method 输入数据类型
* @internal param array $args 参数 [key,filter,default]
*/
private static function getData($name, $input, $filter, $default)
{
if (strpos($name, '/')) {
// 指定修饰符
list($name, $type) = explode('/', $name, 2);
} else {
// 默认强制转换为字符串
$type = 's';
}
$filters = isset($filter) ? $filter : self::$filter;
if ('' == $name) {
// 获取全部变量
$data = $input;
if ($filters) {
if (is_string($filters)) {
$filters = explode(',', $filters);
}
foreach ($filters as $filter) {
$data = self::filter($filter, $data);
// 参数过滤
}
}
} elseif (isset($input[$name])) {
// 取值操作
$data = $input[$name];
if ($filters) {
if (is_string($filters)) {
if (0 === strpos($filters, '/')) {
if (1 !== preg_match($filters, (string) $data)) {
// 支持正则验证
return $default;
}
} else {
$filters = explode(',', $filters);
}
} elseif (is_int($filters)) {
$filters = [$filters];
}
if (is_array($filters)) {
foreach ($filters as $filter) {
if (function_exists($filter)) {
$data = is_array($data) ? self::filter($filter, $data) : $filter($data);
// 参数过滤
} else {
$data = filter_var($data, is_int($filter) ? $filter : filter_id($filter));
if (false === $data) {
return $default;
}
}
}
}
}
if (!empty($type)) {
switch (strtolower($type)) {
case 'a':
// 数组
$data = (array) $data;
break;
case 'd':
// 数字
$data = (int) $data;
break;
case 'f':
// 浮点
$data = (double) $data;
break;
case 'b':
// 布尔
$data = (bool) $data;
break;
case 's':
// 字符串
// 字符串
default:
$data = (string) $data;
}
}
} else {
// 变量默认值
$data = $default;
}
is_array($data) && array_walk_recursive($data, 'self::filterExp');
return $data;
}
示例12: applyFilter
/**
* @param mixed $value
* @param array $spec
* @return boolean
*/
protected function applyFilter($value, $spec)
{
$result = true;
$filter = $spec['filter'];
//
if (is_callable($filter)) {
$result = $filter($value, $this->filterOptions($spec));
} elseif (is_numeric($filter)) {
$result = filter_var($value, $filter, $this->filterOptions($spec));
} elseif (is_string($filter)) {
$id = filter_id($filter);
if ($id === false) {
$result = false;
$spec['message'] = "Unknown filter '{$filter}'";
} else {
$result = filter_var($value, $id, $this->filterOptions($spec));
}
} else {
$result = false;
}
return $result;
}
示例13: I
//.........这里部分代码省略.........
if (strpos($name, '.')) {
// 指定参数来源
list($method, $name) = explode('.', $name, 2);
} else {
// 默认为自动判断
$method = 'param';
}
switch (strtolower($method)) {
case 'get':
$input =& $_GET;
break;
case 'post':
$input =& $_POST;
break;
case 'put':
parse_str(file_get_contents('php://input'), $input);
break;
case 'param':
switch ($_SERVER['REQUEST_METHOD']) {
case 'POST':
$input = $_POST;
break;
case 'PUT':
parse_str(file_get_contents('php://input'), $input);
break;
default:
$input = $_GET;
}
break;
case 'path':
$input = array();
if (!empty($_SERVER['PATH_INFO'])) {
$depr = C('URL_PATHINFO_DEPR');
$input = explode($depr, trim($_SERVER['PATH_INFO'], $depr));
}
break;
case 'request':
$input =& $_REQUEST;
break;
case 'session':
$input =& $_SESSION;
break;
case 'cookie':
$input =& $_COOKIE;
break;
case 'server':
$input =& $_SERVER;
break;
case 'globals':
$input =& $GLOBALS;
break;
case 'data':
$input =& $datas;
break;
default:
return NULL;
}
if ('' == $name) {
// 获取全部变量
$data = $input;
array_walk_recursive($data, 'filter_exp');
$filters = isset($filter) ? $filter : C('DEFAULT_FILTER');
if ($filters) {
if (is_string($filters)) {
$filters = explode(',', $filters);
}
foreach ($filters as $filter) {
$data = array_map_recursive($filter, $data);
// 参数过滤
}
}
} elseif (isset($input[$name])) {
// 取值操作
$data = $input[$name];
is_array($data) && array_walk_recursive($data, 'filter_exp');
$filters = isset($filter) ? $filter : C('DEFAULT_FILTER');
if ($filters) {
if (is_string($filters)) {
$filters = explode(',', $filters);
} elseif (is_int($filters)) {
$filters = array($filters);
}
foreach ($filters as $filter) {
if (function_exists($filter)) {
$data = is_array($data) ? array_map_recursive($filter, $data) : $filter($data);
// 参数过滤
} else {
$data = filter_var($data, is_int($filter) ? $filter : filter_id($filter));
if (false === $data) {
return isset($default) ? $default : NULL;
}
}
}
}
} else {
// 变量默认值
$data = isset($default) ? $default : NULL;
}
return $data;
}
示例14: filterValue
/**
* Filters a value according to filter, filter_id and options
*
* @param mixed $value
* @param mixed $filter
* @param int $filterId
* @param mixed $options
* @return mixed
*/
protected function filterValue($value, $filter, $filterId, $options)
{
if (!$filter && !$filterId) {
return $value;
}
if (null === $filterId && is_string($filter)) {
$filterId = is_string($filter) ? filter_id($filter) : null;
}
if ($filterId) {
if (null === $options) {
$value = filter_var($value, $filterId);
} else {
$value = filter_var($value, $filterId, array('options' => $options));
}
} elseif (is_callable($filter)) {
$value = call_user_func($filter, $value);
}
return $value;
}
示例15: id
public function id(string $filterName) : int
{
return filter_id($filterName);
}