无需言 做自己 业 ,精于勤 荒于嬉.
- PCRE 函数 preg_replace_callback_array Perform a regular expression search and replace using callbacks
-
发表日期:2021-07-01 08:56:56 | 来源: | 分类:PCRE 函数
-
示例1
<?php $subject = 'Aaaaaa Bbb'; preg_replace_callback_array( [ '~[a]+~i' => function ($match) { echo strlen($match[0]), ' matches for "a" found', PHP_EOL; } , '~[b]+~i' => function ($match) { echo strlen($match[0]), ' matches for "b" found', PHP_EOL; } ], $subject); ?>
- PCRE 函数 preg_replace_callback 执行一个正则表达式搜索并且使用一个回调进行替换
-
发表日期:2021-07-01 08:56:56 | 来源: | 分类:PCRE 函数
-
示例1
<?php /* 一个unix样式的命令行过滤器,用于将段落开始部分的大写字母转换为小写。 */ $fp = fopen("php://stdin", "r") or die("can't read stdin"); while (!feof($fp)) { $line = fgets($fp); $line = preg_replace_callback( '|<p>\s*\w|', function ($matches) { return strtolower($matches[0]); } , $line ); echo $line; } fclose($fp); ?>示例2
<?php // 将文本中的年份增加一年.$text = "April fools day is 04/01/2002\n"; $text.= "Last christmas was 12/24/2001\n"; // 回调函数function next_year($matches){ // 通常: $matches[0]是完成的匹配 // $matches[1]是第一个捕获子组的匹配 // 以此类推 return $matches[1].($matches[2]+1); } echo preg_replace_callback( "|(\d{ 2} /\d{ 2} /)(\d{ 4} )|", "next_year", $text); ?>示例3
<?php $input = "plain [indent] deep [indent] deeper [/indent] deep [/indent] plain"; function parseTagsRecursive($input){ /* 译注: 对此正则表达式分段分析 * 首尾两个#是正则分隔符 * \[indent] 匹配一个原文的[indent] * ((?:[^[]|\[(?!/?indent])|(?R))+)分析: * (?:[^[]|\[(?!/?indent])分析: * 首先它是一个非捕获子组 * 两个可选路径, 一个是非[字符, 另一个是[字符但后面紧跟着不是/indent或indent. * (?R) 正则表达式递归 * \[/indent] 匹配结束的[/indent] * / $regex = '#\[indent]((?:[^[]|\[(?!/?indent])|(?R))+)\[/indent]#'; if (is_array($input)) { $input = '<div style="margin-left: 10px">'.$input[1].'</div>'; } return preg_replace_callback($regex, 'parseTagsRecursive', $input); } $output = parseTagsRecursive($input); echo $output; ?>
- PCRE 函数 preg_split 通过一个正则表达式分隔字符串
-
发表日期:2021-07-01 08:56:56 | 来源: | 分类:PCRE 函数
-
示例1
<?php //使用逗号或空格(包含" ", \r, \t, \n, \f)分隔短语$keywords = preg_split("/[\s,]+/", "hypertext language, programming"); print_r($keywords); ?>示例2
<?php $str = 'string'; $chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY); print_r($chars); ?>示例3
<?php $str = 'hypertext language programming'; $chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE); print_r($chars); ?>
- PCRE 函数 preg_filter 执行一个正则表达式搜索和替换
-
发表日期:2021-07-01 08:56:55 | 来源: | 分类:PCRE 函数
-
示例1
<?php $subject = array('1', 'a', '2', 'b', '3', 'A', 'B', '4'); $pattern = array('/\d/', '/[a-z]/', '/[1a]/'); $replace = array('A:$0', 'B:$0', 'C:$0'); echo "preg_filter returns\n"; print_r(preg_filter($pattern, $replace, $subject)); echo "preg_replace returns\n"; print_r(preg_replace($pattern, $replace, $subject)); ?>
- PCRE 函数 preg_match 执行匹配正则表达式
-
发表日期:2021-07-01 08:56:55 | 来源: | 分类:PCRE 函数
-
示例1
<?php preg_match('/(foo)(bar)(baz)/', 'foobarbaz', $matches, PREG_OFFSET_CAPTURE); print_r($matches); ?>示例2
<?php preg_match('/(a)(b)*(c)/', 'ac', $matches); var_dump($matches); preg_match('/(a)(b)*(c)/', 'ac', $matches, PREG_UNMATCHED_AS_NULL); var_dump($matches); ?>示例3
<?php $subject = "abcdef"; $pattern = '/^def/'; preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3); print_r($matches); ?>
示例4
<?php $subject = "abcdef"; $pattern = '/^def/'; preg_match($pattern, substr($subject,3), $matches, PREG_OFFSET_CAPTURE); print_r($matches); ?>
示例5
<?php //模式分隔符后的"i"标记这是一个大小写不敏感的搜索if (preg_match("/php/i", "PHP is the web scripting language of choice.")) { echo "A match was found."; } else { echo "A match was not found."; } ?>示例6
<?php /* 模式中的\b标记一个单词边界,所以只有独立的单词"web"会被匹配,而不会匹配 * 单词的部分内容比如"webbing" 或 "cobweb" */ if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) { echo "A match was found."; } else { echo "A match was not found."; } if (preg_match("/\bweb\b/i", "PHP is the website scripting language of choice.")) { echo "A match was found."; } else { echo "A match was not found."; } ?>示例7
<?php //从URL中获取主机名称preg_match('@^(?:http://)?([^/]+)@i', "http://www.php.net/index.html", $matches); $host = $matches[1]; //获取主机名称的后面两部分preg_match('/[^.]+\.[^.]+$/', $host, $matches); echo "domain name is: { $matches[0]} \n"; ?>示例8
<?php $str = 'foobar: 2008'; preg_match('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches); /* 可选的方式 */ // preg_match('/(?<name>\w+): (?<digit>\d+)/', $str, $matches); print_r($matches); ?>
- PCRE 函数 preg_last_error 返回最后一个PCRE正则执行产生的错误代码
-
发表日期:2021-07-01 08:56:55 | 来源: | 分类:PCRE 函数
-
示例1
<?php preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar'); if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) { print 'Backtrack limit was exhausted!'; } ?>
- PCRE 函数 preg_quote 转义正则表达式字符
-
发表日期:2021-07-01 08:56:55 | 来源: | 分类:PCRE 函数
-
示例1
<?php $keywords = '$40 for a g3/400'; $keywords = preg_quote($keywords, '/'); echo $keywords; // 返回 \$40 for a g3\/400?>
示例2
<?php //在这个例子中,preg_quote($word) 用于保持星号原文涵义,使其不使用正则表达式中的特殊语义。$textbody = "This book is *very* difficult to find."; $word = "*very*"; $textbody = preg_replace ("/" . preg_quote($word, '/') . "/", "<i>" . $word . "</i>", $textbody); ?>
- Session 函数 session_start 启动新会话或者重用现有会话
-
发表日期:2021-07-01 08:56:52 | 来源: | 分类:Session 函数
-
示例1
<?php // page1.phpsession_start(); echo 'Welcome to page #1'; $_SESSION['favcolor'] = 'green'; $_SESSION['animal'] = 'cat'; $_SESSION['time'] = time(); // 如果使用 cookie 方式传送会话 IDecho '<br /><a href="page2.php">page 2</a>'; // 如果不是使用 cookie 方式传送会话 ID,则使用 URL 改写的方式传送会话 IDecho '<br /><a href="page2.php?' . SID . '">page 2</a>'; ?>
示例2
<?php // page2.phpsession_start(); echo 'Welcome to page #2<br />'; echo $_SESSION['favcolor']; // greenecho $_SESSION['animal']; // catecho date('Y m d H:i:s', $_SESSION['time']); // 类似 page1.php 中的代码,你可能需要在这里处理使用 SID 的场景echo '<br /><a href="page1.php">page 1</a>'; ?>示例3
<?php // 设置 cookie 的有效时间为 1 天session_start([ 'cookie_lifetime' => 86400,]); ?>
示例4
<?php // 如果确定不修改会话中的数据,// 我们可以在会话文件读取完毕之后立即关闭它// 来避免由于给会话文件加锁导致其他页面阻塞session_start([ 'cookie_lifetime' => 86400, 'read_and_close' => true,]);
- Session 函数 session_write_close Write session data and end session
-
发表日期:2021-07-01 08:56:52 | 来源: | 分类:Session 函数
-
session_write_close
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
session_write_close — Write session data and end session
说明
session_write_close(): boolEnd the current session and store session data.
Session data is usually stored after your script terminated without the need to call session_write_close(), but as session data is locked to prevent concurrent writes only one script may operate on a session at any time. When using framesets together with sessions you will experience the frames loading one by one due to this locking. You can reduce the time needed to load all the frames by ending the session as soon as all changes to session variables are done.
参数
此函数没有参数。
返回值
成功时返回
true, 或者在失败时返回false。更新日志
版本 说明 7.2.0 The return type of this function is bool now. Formerly, it has been void.
- Session 函数 session_encode 将当前会话数据编码为一个字符串
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
session_encode
(PHP 4, PHP 5, PHP 7, PHP 8)
session_encode — 将当前会话数据编码为一个字符串
说明
session_encode(): stringsession_encode() 返回一个序列化后的字符串,包含被编码的、储存于 $_SESSION 超全局变量中的当前会话数据。
请注意,序列方法 和 serialize() 是不一样的。 该序列方法是内置于 PHP 的,能够通过设置 session.serialize_handler 来设置。
返回值
返回当前会话编码后的内容。
注释
警告在调用 session_decode() 之前必须先调用 session_start()。
- Session 函数 session_commit session_write_close() 的别名
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
说明
此函数是该函数的别名:session_write_close()。
- Session 函数 session_gc Perform session data garbage collection
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
示例1
<?php // Note: This script should be executed by the same user of web server process.// Need active session to initialize session data storage access.session_start(); // Executes GC immediatelysession_gc(); // Clean up session ID created by session_gc()session_destroy(); ?>
示例2
<?php // Note: session_gc() is recommended to be used by task manager script, but// it may be used as follows.// Used for last GC time check$gc_time = '/tmp/php_session_last_gc'; $gc_period = 1800; session_start(); // Execute GC only when GC period elapsed. // i.e. Calling session_gc() every request is waste of resources. if (file_exists($gc_time)) { if (filemtime($gc_time) < time() - $gc_period) { session_gc(); touch($gc_time); } } else { touch($gc_time); } ?>
- Session 函数 session_id 获取/设置当前会话 ID
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
session_id
(PHP 4, PHP 5, PHP 7, PHP 8)
session_id — 获取/设置当前会话 ID
说明
session_id(string$id= ?): stringsession_id() 可以用来获取/设置 当前会话 ID。
为了能够将会话 ID 很方便的附加到 URL 之后, 你可以使用常量
SID获取以字符串格式表达的会话名称和 ID。 请参考 会话处理。参数
-
id -
如果指定了
id参数的值, 则使用指定值作为会话 ID。 必须在调用 session_start() 函数之前调用 session_id() 函数。 不同的会话管理器对于会话 ID 中可以使用的字符有不同的限制。 例如文件会话管理器仅允许会话 ID 中使用以下字符:a-z A-Z 0-9 , (逗号)和 - (减号)注意: 如果使用 cookie 方式传送会话 ID,并且指定了
id参数, 在调用 session_start() 之后都会向客户端发送新的 cookie, 无论当前的会话 ID 和新指定的会话 ID 是否相同。
返回值
session_id() 返回当前会话ID。 如果当前没有会话,则返回空字符串(
"")。参见
- session_regenerate_id() - 使用新生成的会话 ID 更新现有会话 ID
- session_start() - 启动新会话或者重用现有会话
- session_set_save_handler() - 设置用户自定义会话存储函数
- session.save_handler
-
- Session 函数 session_destroy 销毁一个会话中的全部数据
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
示例1
<?php // 初始化会话。// 如果要使用会话,别忘了现在就调用:session_start(); // 重置会话中的所有变量$_SESSION = array(); // 如果要清理的更彻底,那么同时删除会话 cookie// 注意:这样不但销毁了会话中的数据,还同时销毁了会话本身if (ini_get("session.use_cookies")) { $params = session_get_cookie_params(); setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"] ); } // 最后,销毁会话session_destroy(); ?>
- Session 函数 session_module_name 获取/设置会话模块名称
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
session_module_name
(PHP 4, PHP 5, PHP 7, PHP 8)
session_module_name — 获取/设置会话模块名称
说明
session_module_name(string$module= ?): stringsession_module_name() 获取或设置会话模块名称,也被称做:session.save_handler。
参数
-
module -
如果指定
module参数,则使用 指定值作为会话模块。 禁止传入"user"作为此参数的值, 请使用 set_set_save_handler() 来设置用户自定义的会话处理器。
返回值
返回当前所用的会话模块名称。
更新日志
版本 说明 7.2.0 不允许设置模块名称为 "user"。 在之前的版本中,如果设置为 "user",那么会被静默的忽略到。 -
- Session 函数 session_get_cookie_params 获取会话 cookie 参数
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
- Session 函数 session_name 读取/设置会话名称
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
示例1
<?php /* 设置会话名称为 WebsiteID */ $previous_name = session_name("WebsiteID"); echo "The previous session name was $previous_name<br />"; ?>
- Session 函数 session_register_shutdown 关闭会话
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
session_register_shutdown
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
session_register_shutdown — 关闭会话
参数
此函数没有参数。
返回值
没有返回值。
错误/异常
如果函数调用失败,触发
E_WARNING级别的错误。
- Session 函数 session_regenerate_id 使用新生成的会话 ID 更新现有会话 ID
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
示例1
<?php // 注意:下列不是完整的代码,只是一个示例session_start(); // 检查会话被销毁的时间戳if (isset($_SESSION['destroyed']) && $_SESSION['destroyed'] < time() - 300) { // 通常不会发生这种情况。如果发生,那么可能是由于不稳定的网络状况或者被攻击导致的 // 移除用户会话中的认证信息 remove_all_authentication_flag_from_active_sessions($_SESSION['userid']); throw(new DestroyedSessionAccessException); } $old_sessionid = session_id(); // 设置会话销毁时间戳$_SESSION['destroyed'] = time(); // 从 PHP 7.0.0 开始, session_regenerate_id() 会自动保存会话数据// 如果直接调用 session_regenerate_id() 函数可能会导致会话丢失的情况,// 参见下面的例程session_regenerate_id(); // 新创建的会话不需要时间戳unset($_SESSION['destroyed']); $new_sessionid = session_id(); echo "Old Session: $old_sessionid<br />"; echo "New Session: $new_sessionid<br />"; print_r($_SESSION); ?>示例2
<?php // 注意:下列不是完整的代码,只是一个示例// my_session_start() 和 my_session_regenerate_id()// 函数可以避免在网络不稳定的情况下导致会话丢失的问题。// 并且还可以避免用户会话被攻击者利用function my_session_start() { session_start(); if (isset($_SESSION['destroyed'])) { if ($_SESSION['destroyed'] < time()-300) { // 通常不会发生这种情况。如果发生,那么可能是由于不稳定的网络状况或者被攻击导致的 // 移除用户会话中的认证信息 remove_all_authentication_flag_from_active_sessions($_SESSION['userid']); throw(new DestroyedSessionAccessException); } if (isset($_SESSION['new_session_id'])) { // 尚未完全过期,可能是由于网络不稳定引起的。 // 尝试再次设置正确的会话 ID cookie。 // 注意:如果你需要移除认证标记,那么不要尝试再次设置会话 ID。 session_commit(); session_id($_SESSION['new_session_id']); // 现在有了新的会话 ID 了。 session_start(); return; } } } function my_session_regenerate_id() { // 如果由于不稳定的网络导致没有创建会话 ID, // 那么就创建一个 $new_session_id = session_create_id(); $_SESSION['new_session_id'] = $new_session_id; // 设置销毁时间戳 $_SESSION['destroyed'] = time(); // 保存并关闭会话 session_commit(); // 使用新的会话 ID 开始会话 session_id($new_session_id); ini_set('session.use_strict_mode', 0); session_start(); ini_set('session.use_strict_mode', 1); // 新的会话不需要这 2 个数据了 unset($_SESSION['destroyed']); unset($_SESSION['new_session_id']); } ?>
- Session 函数 session_save_path 读取/设置当前会话的保存路径
-
发表日期:2021-07-01 08:56:51 | 来源: | 分类:Session 函数
-
session_save_path
(PHP 4, PHP 5, PHP 7, PHP 8)
session_save_path — 读取/设置当前会话的保存路径
说明
session_save_path(string$path= ?): stringsession_save_path() 返回当前会话的保存路径。
参数
-
path -
指定会话数据保存的路径。 必须在调用 session_start() 函数之前调用 session_save_path() 函数。
注意:
在某些操作系统上,建议使用可以高效处理 大量小尺寸文件的文件系统上的路径来保存会话数据。 例如,在 Linux 平台上,对于会话数据保存的工作而言,reiserfs 文件系统会比 ext2fs 文件系统能够提供更好的性能。
返回值
返回保存会话数据的路径。
-
- 前端开发(1)
- 数据库(0)
- PHP(0)
- PHP杂项(34)
- PHP基础-李炎恢系列课程(20)
- 中文函数手册(0)
- 错误处理 函数(13)
- OPcache 函数(6)
- PHP 选项/信息 函数(54)
- Zip 函数(10)
- Hash 函数(15)
- OpenSSL 函数(63)
- Date/Time 函数(51)
- 目录函数(9)
- Fileinfo 函数(6)
- iconv 函数(11)
- 文件系统函数(81)
- 多字节字符串 函数(57)
- GD 和图像处理 函数(114)
- 可交换图像信息(5)
- Math 函数(50)
- 程序执行函数(11)
- PCNTL 函数(23)
- JSON 函数(4)
- SPL 函数(15)
- URL 函数(10)
- cURL 函数(32)
- 网络 函数(33)
- FTP 函数(36)
- Session 函数(23)
- PCRE 函数(11)
- PCRE 正则语法(19)
- 数组 函数(81)
- 类/对象 函数(18)
- 函数处理 函数(13)
- 变量处理 函数(37)
- SimpleXML 函数(3)
- 杂项 函数(31)
- 字符串 函数(101)
- JAVA(0)
- Android(0)
- Linux(0)
- AI大模型(9)
- 其他(0)
宁公网安备 64010402001209号