当前位置: 首页 > news >正文

PHP 函数四

一 fgets(resource $stream, ?int $length = null)

从文件指针中读取一行。

返回字符串,如果文件指针中没有更多的数据了则返回 false。错误发生时返回 false

$stream 为文件资源,必须指向fopen()或fscokopen()成功打开的文件。文件打开之后,必须使用fclose()关闭

#test.htm
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
……
$file = "test.htm";
$file_obj = fopen($file, "r");
$str = fgets($file_obj, 10);
var_dump($str);#测试结果
string(9) "<!DOCTYPE"

二 fgetss(resource $handle, int $length = ?, string $allowable_tags = ?)

和fgets()相同,但是过滤HTML和PHP标签。返回字符串,错误返回false,文件无内容返回false。

$handle 文件指针

$length 获取字符串长度

$allowable_tags 指定不被去除的标签

自php 7.3.0版本启用,自php 8.0.0起移除。

三 strip_tags(string $string, array|string|null $allowed_tags = null)

从字符串中去除 HTML 和 PHP 标签,机制与fgetss()相同。

参数说明惨开fgetss()。

    $file = "test.htm";$total_lines = 10;$file_obj = fopen($file, "r");$str = "";while (($buffer = fgets($file_obj, 2048)) != false) {$str .= $buffer;if ($total_lines <= 0) {break;}$total_lines--;}var_dump($str);$str = strip_tags($str, "<link>");var_dump($str);

测试结果

string(492) "<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>PHP: fgets - Manual </title><link rel="icon" type="image/svg+xml" sizes="any" href="https://www.php.net/favicon.svg?v=2"><link rel="icon" type="image/png" sizes="196x196" href="https://www.php.net/favicon-196x196.png?v=2">
"
string(244) "PHP: fgets - Manual<link rel="icon" type="image/svg+xml" sizes="any" href="https://www.php.net/favicon.svg?v=2"><link rel="icon" type="image/png" sizes="196x196" href="https://www.php.net/favicon-196x196.png?v=2">
"

四 mb_convert_case(string $string, int $mode, ?string $encoding = null)

对字符串进行大小写转换。大小转换执行根据Unicode字母属性的基础,而strtolower()和strtoupper()使用标准大小写转换。因此函数的行为不受语言环境(locale)设置的影响,能够转换任意具有“字母”属性的字符,例如元音变音A(Ä)。

$mod 可用模式包括:MB_CASE_UPPERMB_CASE_LOWERMB_CASE_TITLEMB_CASE_FOLDMB_CASE_UPPER_SIMPLEMB_CASE_LOWER_SIMPLEMB_CASE_TITLE_SIMPLEMB_CASE_FOLD_SIMPLE。

MB_CASE_UPPER、MB_CASE_UPPER_SIMPLE 全部转大写

MB_CASE_LOWER、MB_CASE_LOWER_SIMPLE 全部转小写

MB_CASE_TITLE、MB_CASE_TITLE_SIMPLE 转为首字母大写

MB_CASE_FOLD、MB_CASE_FOLD_SIMPLE 看起来像全部转小写

$encoding 字体编码

    $str = "qWe asD zxc 123q";var_dump($str);$str = mb_convert_case($str, MB_CASE_UPPER, "GBK");var_dump($str);$str = mb_convert_case($str, MB_CASE_LOWER, "GBK");var_dump($str);$str = mb_convert_case($str, MB_CASE_TITLE, "GBK");var_dump($str);$str = mb_convert_case($str, MB_CASE_FOLD, "GBK");var_dump($str);$str = mb_convert_case($str, MB_CASE_UPPER_SIMPLE, "GBK");var_dump($str);$str = mb_convert_case($str, MB_CASE_LOWER_SIMPLE, "GBK");var_dump($str);$str = mb_convert_case($str, MB_CASE_TITLE_SIMPLE, "GBK");var_dump($str);$str = mb_convert_case($str, MB_CASE_FOLD_SIMPLE, "GBK");var_dump($str);

测试结果

string(16) "qWe asD zxc 123q"
string(16) "QWE ASD ZXC 123Q"
string(16) "qwe asd zxc 123q"
string(16) "Qwe Asd Zxc 123Q"
string(16) "qwe asd zxc 123q"
string(16) "QWE ASD ZXC 123Q"
string(16) "qwe asd zxc 123q"
string(16) "Qwe Asd Zxc 123Q"
string(16) "qwe asd zxc 123q"

五 array_map(?callable $callback, array $array, array ...$arrays)

为数组的每个元素应用回调函数。返回数组,包括callback结果。callback参数与对应处理的数组数量相同,传入多个数组时,返回的数组键是按顺序的 integer。

function dealwitcharr($value1, $value2) {if (is_numeric($value1) && is_numeric($value2)) {return $value1 + $value2;}return $value1 . "&" . $value2;
}    
$arr1 = ['test1', '1', '3', 'test2'];
$arr2 = ['5', '6', 'test1', 'test2'];
$arr = array_map("dealwitcharr", $arr1, $arr2);
var_dump($arr);

 测试结果

array(4) {[0]=>string(7) "test1&5"[1]=>int(7)[2]=>string(7) "3&test1"[3]=>string(11) "test2&test2"
}

六 get_defined_vars()

返回由所有已定义变量所组成的数组。

    $test1 = "123";// ob_end_clean();$arr = get_defined_vars();var_dump($arr);

测试结果

array(1) {       ["test1"]=>    string(3) "123"
}

七 get_debug_type(mixed $value)

该函数会将对象解析为其类名。该函数与 gettype() 的区别在于:它返回的类型名称更符合实际用法,而不是那些出于历史原因而存在的名称。

    echo get_debug_type(null) . PHP_EOL;echo get_debug_type(true) . PHP_EOL;echo get_debug_type(1) . PHP_EOL;echo get_debug_type(0.1) . PHP_EOL;echo get_debug_type("foo") . PHP_EOL;echo get_debug_type([]) . PHP_EOL;echo get_debug_type(new stdClass) . PHP_EOL;echo get_debug_type(new class {}) . PHP_EOL;

测试结果

null
bool
int
float
string
array
stdClass
class@anonymous

八 http_build_query

生成 URL-encode 之后的请求字符串。

参数列表:

  1. data 请求数据,数组或对象。为对象,仅public属性会加入结果。
  2. numeric_perfix 基础数组中的数字下标元素的前缀。PHP 或其它 CGI 程序在稍后对数据进行解码时获取合法的变量名。
  3. arg_separator 参数分隔符。如果未设置或为null。
  4. encoding_type 编码类型,默认PHP_QUERY_RFC1738。PHP_QUERY_RFC1738将根据REC3986编码和application/x-www-form-urlencoded 媒体类型进行编码,空格会被编码成加号(+)。PHP_QUERY_RFC3986将根据RFC3986编码,空格会被百分号编码(%20)。
    $user = new User("张三", 20);$data = $user;$str = http_build_query($data, 'user', "&", PHP_QUERY_RFC1738);var_dump($str);$str = http_build_query($data, 'user', "|", PHP_QUERY_RFC3986);var_dump($str);

 测试结果

string(30) "name=%E5%BC%A0%E4%B8%89&age=20"
string(30) "name=%E5%BC%A0%E4%B8%89|age=20"

九 array_replace_recursive(array $array, array ...$replacements)

使用传递的数组递归替换第一个数组的元素。后面的数组替换第一个数组,若不存在则在一个数组中创建,若参数中有多于一维的数组会递归遍历。

     $arr1 = [1, 2, "qwe", 4, "asd", ['a', 'b', 'c']];$arr2 = [1, 2, "qwe1", 5, "asd", ['a1', 'b', 'c'], 8];$arr3 = [1, 2, 3, 5, 6, 7];$str = array_replace_recursive($arr1, $arr2, $arr3);var_dump($str);$str = array_replace_recursive($arr1, $arr2);var_dump($str);

测试结果

array(7) {[0]=>   int(1)[1]=>int(2)[2]=>int(3)[3]=>int(5)[4]=>int(6)[5]=>int(7)[6]=>int(8)
}
array(7) {[0]=>int(1)[1]=>int(2)[2]=>string(4) "qwe1"[3]=>int(5)[4]=>string(3) "asd"[5]=>array(3) {[0]=>string(2) "a1"[1]=>string(1) "b"[2]=>string(1) "c"}[6]=>int(8)
}

十 array_unique(array $array, int $flags = SORT_STRING)

移除数组中重复的值。

$flags 用于比较行为,可用值如下:

  1. SORT_REGULAR 按照通常方法比较,不改变数据类型
  2. SORT_NUMERIC 按照数字形式比较,仅比较值
  3. SORT_STRING 按照字符串形式比较 默认,仅比较值
  4. SORT_LOCALE_STRING 根据当前的本地化设置,按照字符串比较
    $arr = ["green", "green1", "green3", "1green", "9a", "2blue", "red"];foreach ($arr as $key => $value) {echo $value . "=>" . (int) $value . PHP_EOL;}$result = array_unique($arr, SORT_NUMERIC);var_dump($result);

测试结果

green=>0
green1=>0
green3=>0
1green=>1
9a=>9
2blue=>2
red=>0
array(4) {[0]=>string(5) "green"[3]=>string(6) "1green"[4]=>string(2) "9a"[5]=>string(5) "2blue"
}

SORT_NUMERIC将值全部转为数字,所以green、green1、green3、red都是0,且仅使用第一个green,所以测试结果中green1、green3、red都未显示。

相关文章:

PHP 函数四

一 fgets(resource $stream, ?int $length null) 从文件指针中读取一行。 返回字符串&#xff0c;如果文件指针中没有更多的数据了则返回 false。错误发生时返回 false。 $stream 为文件资源&#xff0c;必须指向fopen()或fscokopen()成功打开的文件。文件打开之后&#x…...

【Android】反编译APK及重新打包

1.下载 APK 反编译工具 首先&#xff0c;需要下载一个 APK 反编译工具&#xff0c;例如 Apktool。可以在官网&#xff08;https://apktool.org/docs/install&#xff09;上下载最新版本的 Apktool&#xff0c;也可以使用包管理器来安装。 2.反编译 APK 文件 将要修改包名的 …...

下载huggingface数据集到本地并读取.arrow文件遇到的问题

文章目录 1. 524MB中文维基百科语料&#xff08;需要下载的数据集&#xff09;2. 下载 hugging face 网站上的数据集3. 读取 .arrow 文件报错代码4. 纠正后代码 1. 524MB中文维基百科语料&#xff08;需要下载的数据集&#xff09; 2. 下载 hugging face 网站上的数据集 要将H…...

.NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】

设计模式是软件工程中常用的解决特定问题的通用设计方法。它们提供了经过验证的解决方案&#xff0c;可用于解决在软件开发过程中经常遇到的一些常见问题。设计模式不是一种具体的编程语言特性或语法&#xff0c;而是一种通用的设计思想或模板&#xff0c;可以帮助开发人员设计…...

【Web】关于jQuery萌新必须要知道的那些基础知识

目录 DOM对象和jQuery包装集对象 jQuery选择器 jQuery操作元素的属性&#xff0c;样式&#xff0c;内容 jQuery创建元素和添加元素&#xff0c;删除元素和遍历元素 jQuery-ready加载事件 jQuery绑定事件 jQuery中ajax的使用 DOM对象和jQuery包装集对象 DOM对象&#xf…...

第 1 章 微信小程序与云开发从入门到实践从零开始做小程序——开发认识微信小程序

小北的参考工具书 小程序开发的图书并不少&#xff0c;这本书仍然值得你拥有&#xff01; 首先&#xff0c;这是一本全栈小程序开发教程&#xff0c;循序渐进&#xff0c;由浅入深&#xff0c;介绍了小程序开发你想了解的方方面面&#xff0c;包括近其小程序开发的各种新技术应…...

数据隐私安全趋势

在当今社交媒体和开源开发的世界中&#xff0c;共享似乎已成为社会常态。毕竟&#xff0c;我们都被教导分享就是关怀。这不仅适用于个人&#xff0c;也适用于公司&#xff1a;无论是有意在社交媒体帐户和公司网站上&#xff0c;还是无意中通过员工的行为&#xff0c;公司可能会…...

学习磁盘管理

文章目录 一、磁盘接口类型二、磁盘设备的命名三、fdisk分区四、自动挂载五、扩容swap六、GPT分区七、逻辑卷管理八、磁盘配额九、RAID十、软硬链接 一、磁盘接口类型 IDE、SATA、SCSI、SAS、FC&#xff08;光纤通道&#xff09; IDE, 该接口是并口。SATA, 该接口是串口。SCS…...

C语言从入门到精通(一) - C语言开发神器CLion

clion安装配置 下载安装 下载 安装 运行clion clion设置 配置快捷键 配置快捷键为eclipse模式 [可以选择自己喜欢的快捷键模式] 添加cygwin编译器 下载cygwin Cygwin Installation Cygwin是一个在windows平台上运行的类UNIX模拟环境&#xff0c;是Cygnus Solutions公司开发的…...

【办公类-16-10-02】“2023下学期 6个中班 自主游戏观察记录(python 排班表系列)

背景需求&#xff1a; 已经制作了本学期的中4班自主游戏观察记录表 【办公类-16-10-01】“2023下学期 中4班 自主游戏观察记录&#xff08;python 排班表系列&#xff09;-CSDN博客文章浏览阅读398次&#xff0c;点赞10次&#xff0c;收藏3次。【办公类-16-10-01】“2023下学…...

SpringBooot之RestTemplate接口返回多层泛型导致java.util.LinkedHashMap cannot be cast to异常

统一泛型返回对象 Data public class Res<T> implements Serializable {private static final long serialVersionUID 6558796578827818466L;private Integer code; //状态码private String msg; //返回消息private T data; //数据 }data里包裹的泛型对象假设是DZPJ D…...

【新三板年报文本分析】第二辑:从pdf链接的列表中批量下载年报文件

第一辑中已经获取了新三板年报的pdf链接&#xff0c;使用request库进行批量下载。 send_headers为requests的headers&#xff0c;不需要做变动。 在for循环中读取每一行数据的链接数据&#xff0c;创建一个空pdf&#xff0c;将链接指向的pdf文件写入空pdf文件。 for循环内容…...

Jessibuca 插件播放直播流视频

jessibuca官网&#xff1a;http://jessibuca.monibuca.com/player.html git地址&#xff1a;https://gitee.com/huangz2350_admin/jessibuca#https://gitee.com/link?targethttp%3A%2F%2Fjessibuca.monibuca.com%2F 项目需要的文件 1.播放组件 <template ><div i…...

【Docker】03 容器操作

文章目录 一、流转图二、基本操作2.1 查看本地容器进程2.2 启动容器2.2.1 交互式启动容器2.2.2 后台启动容器 2.3 进入容器2.4 停止启动重启容器2.5 退出容器2.6 删除容器2.7 提交容器&#xff08;打包成镜像&#xff09;2.8 拷贝文件2.8.1 拷贝容器内文件到宿主机2.8.2 拷贝宿…...

【HarmonyOS】鸿蒙开发之Stage模型-基本概念——第4.1章

Stage模型-基本概念 名词解释 AbilityStage:应用组件的“舞台“ UIAbility:包含UI界面的应用组件&#xff0c;是系统调度的基本单元 WindowStage:组件内窗口的“舞台“ Window&#xff1a;用来绘制UI页面的窗口 HAP:Harmony Ability Package(鸿蒙能力类型的包) HSP:Harmony Sh…...

什么是芯片委外管理系统? 及其主要作用

随着半导体产业的飞速发展&#xff0c;芯片制造企业面临着日益复杂的生产和管理挑战。为了应对这些挑战&#xff0c;许多企业选择将部分生产环节委托给外部厂商进行&#xff0c;这种合作模式被称为“委外加工”。而为了有效地管理和协调这一合作模式&#xff0c;便诞生了“芯片…...

【实战-08】 flink自定义Map中的变量的行为

场景 自定义Map或者别的算子的时候&#xff0c;有时候需要定义一些类变量&#xff0c;在flink内部高并发的情况下需要正确理解这些变量的行为 代码 package com.pg.function;import org.apache.flink.api.common.functions.MapFunction; import org.apache.flink.api.common…...

Docker Volume

"Ice in my vein" Docker Volume(存储卷) 什么是存储卷? 存储卷就是: “将宿主机的本地文件系统中存在的某个目录&#xff0c;与容器内部的文件系统上的某一目录建立绑定关系”。 存储卷与容器本身的联合文件系统&#xff1f; 在宿主机上的这个与容器形成绑定关系…...

开源计算机视觉库OpenCV常用的API介绍

阅读本文之前请参阅-----开源计算机视觉库OpenCV详细介绍 OpenCV&#xff08;开源计算机视觉库&#xff09;是一个跨平台的计算机视觉和机器学习软件库&#xff0c;它提供了大量的API&#xff08;应用程序编程接口&#xff09;&#xff0c;用于处理图像和视频分析、对象检测、面…...

pytorch -- torch.nn下的常用损失函数

1.基础 loss function损失函数&#xff1a;预测输出与实际输出 差距 越小越好 - 计算实际输出和目标之间的差距 - 为我们更新输出提供依据&#xff08;反向传播&#xff09; 1. L1 torch.nn.L1Loss(size_averageNone, reduceNone, reduction‘mean’) 2. 平方差&#xff08;…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...