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

12-PHP使用过的函数 111-120

111、rowCount

if ($stmt->execute($data)) {//true//读:select//写:insert,update,delete,成功后会返回表中受影响的记录数量//!rowCount() 返回受影响的记录数量if ($stmt->rowCount() > 0) {echo '新增成功,id = ' . $db->lastInsertId() . '<hr>';} else {//falseecho '新增失败';//!errorInfo返回一个数组,可以查看在哪里出错print_r($stmt->errorInfo());}
} else {//falseecho 'sql执行失败';print_r($stmt->errorInfo());
}

112、stripos 

 查找字符串首次出现的位置(不区分大小写)

返回在字符串 haystack 中 needle 首次出现的数字位置。

与 strpos() 不同,stripos() 不区分大小写。

返回 needle 存在于 haystack 字符串开始的位置(独立于偏移量)。同时注意字符串位置起始于 0,而不是 1。

如果未发现 needle 将返回 false

警告

此函数可能返回布尔值 false,但也可能返回等同于 false 的非布尔值。请阅读 布尔类型章节以获取更多信息。应使用 === 运算符来测试此函数的返回值。

<?php
$findme    = 'a';
$mystring1 = 'xyz';
$mystring2 = 'ABC';$pos1 = stripos($mystring1, $findme);
$pos2 = stripos($mystring2, $findme);// 'a' 当然不在 'xyz' 中
if ($pos1 === false) {echo "The string '$findme' was not found in the string '$mystring1'";
}// 注意这里使用的是 ===。简单的 == 不能像我们期望的那样工作,
// 因为 'a' 的位置是 0(第一个字符)。
if ($pos2 !== false) {echo "We found '$findme' in '$mystring2' at position $pos2";
}
?>

 113、debugDumpParams

//!debugDumpParams() 直接打印出当前执行的SQL语句的信息
//!注意,它和 var_dump() 、 php_info() 这类函数一样,是直接打印的,不是将结果返回到一个变量中。$stmt->debugDumpParams();

114、fetch

//执行sqlif ($stmt->execute()) {//fetch():逐条获取,指针自动后移指向下一条//fetch如果执行失败,就返回false,执行成功就返回记录//PDO::FETCH_ASSOCwhile($staff = $stmt->fetch(PDO::FETCH_ASSOC)){printf('<pre>%s</pre>',print_r($staff,true));}//
} else {//falseecho 'sql执行失败';print_r($stmt->errorInfo());//!debugDumpParams() 直接打印出当前执行的SQL语句的信息//!注意,它和 var_dump() 、 php_info() 这类函数一样,是直接打印的,不是将结果返回到一个变量中。$stmt->debugDumpParams();
}

 115、fetchAll

//执行sqlif ($stmt->execute()) {//fetchAll():获取全部满足条件的记录$staffs = $stmt->fetchAll(PDO::FETCH_ASSOC);foreach($staffs as $staff){printf('<pre>%s</pre>',print_r($staff,true));}//
} else {//falseecho 'sql执行失败';print_r($stmt->errorInfo());//!debugDumpParams() 直接打印出当前执行的SQL语句的信息//!注意,它和 var_dump() 、 php_info() 这类函数一样,是直接打印的,不是将结果返回到一个变量中。$stmt->debugDumpParams();
}

116、is_uploaded_file

判断文件是否是通过 HTTP POST 上传的

is_uploaded_file(string $filename): bool

如果 filename 所给出的文件是通过 HTTP POST 上传的则返回 true。这可以用来确保恶意的用户无法欺骗脚本去访问本不能访问的文件,例如 /etc/passwd。

这种检查显得格外重要,如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话。

为了能使 is_uploaded_file() 函数正常工作,必段指定类似于 $_FILES['userfile']['tmp_name'] 的变量,而在从客户端上传的文件名 $_FILES['userfile']['name'] 不能正常运作。

<?phpif (is_uploaded_file($_FILES['userfile']['tmp_name'])) {echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";echo "Displaying contents\n";readfile($_FILES['userfile']['tmp_name']);
} else {echo "Possible file upload attack: ";echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";
}?>

117、pathinfo

返回文件路径的信息

pathinfo(string $path, int $flags = PATHINFO_ALL): array|string

pathinfo() 返回一个关联数组包含有 path 的信息。返回关联数组还是字符串取决于 flags。 

注意:

pathinfo() 纯粹基于输入字符串操作, 它不会受实际文件系统和类似 ".." 的路径格式影响。

path

要解析的路径。

flags

如果指定了,将会返回指定元素;它们包括: PATHINFO_DIRNAME、 PATHINFO_BASENAME、 

PATHINFO_EXTENSION、 PATHINFO_FILENAME

如果没有指定 flags 默认是返回全部的单元。

如果没有传入 options ,将会返回包括以下单元的数组 array:dirnamebasename 和 extension(如果有),以及filename

注意:

如果 path 有一个以上的扩展名, PATHINFO_EXTENSION 只返回最后一个,而 PATHINFO_FILENAME 仅剥离最后一个。 (参考第一个示例)。

注意:

如果 path 没有扩展名,返回数据中就不会有 extension 元素。(参考第二个示例)

注意:

如果 path 中的 basename 以点开始, 那后面的字符串将被解释为 extension , 并且 filename 为空。(参考第三个示例)

如果 flags 存在的, 则返回一个包含请求元素的 string。

示例1: 

<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
//!pathinfo()返回一个数组,包括文件的dirname(目录名),
//basename(当前整体名),extension(扩展名),filename(文件名)echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n";
?>

 以上例程会输出:

/www/htdocs/inc
lib.inc.php
php
lib.inc

示例2:pathinfo() 对比空扩展名和无扩展名之间区别的示例 

<?php
$path_parts = pathinfo('/path/emptyextension.');
var_dump($path_parts['extension']);$path_parts = pathinfo('/path/noextension');
var_dump($path_parts['extension']);
?>

以上例程的输出类似于:

string(0) ""Notice: Undefined index: extension in test.php on line 6
NULL

 示例3:pathinfo() 形如 .file 的示例

<?php
print_r(pathinfo('/some/path/.test'));
?>

以上例程的输出类似于:

Array
([dirname] => /some/path[basename] => .test[extension] => test[filename] =>
)

118、move_uploaded_file 

将上传的文件移动到新位置

move_uploaded_file(string $from, string $to): bool

本函数检查并确保由 from 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 to 指定的文件。

这种检查显得格外重要,如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话。

参数:

from

上传的文件的文件名。

to

移动文件到这个位置。

返回值:

成功时返回 true

如果 from 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 false

如果 from 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 false。此外还会发出一条警告。

<?php
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {if ($error == UPLOAD_ERR_OK) {$tmp_name = $_FILES["pictures"]["tmp_name"][$key];// basename() 可以防止遍历攻击文件系统;// 进一步验证/清理文件名可能是合适的$name = basename($_FILES["pictures"]["name"][$key]);move_uploaded_file($tmp_name, "$uploads_dir/$name");}
}
?>

 119、md5

计算字符串的 MD5 散列值

md5(string $string, bool $binary = false): string

string

要计算的字符串。

binary

如果可选的 binary 被设置为 true,那么 md5 摘要将以 16 字符长度的原始二进制格式返回。

<?php
$str = 'apple';if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {echo "Would you like a green or red apple?";
}
?>

200、multiple 

<input type="file" name="my_pic[]" multiple>
<button>上传</button>
<!-- 与demo3.php相比,只改了两个地方 -->
<!-- 1.只保留一个my_pic[] -->
<!-- 2.加一个multiple属性,支持多选 -->
<!-- php处理上传的代码,和demo3.php完全一样,不用动 -->

相关文章:

12-PHP使用过的函数 111-120

111、rowCount if ($stmt->execute($data)) {//true//读:select//写:insert,update,delete,成功后会返回表中受影响的记录数量//!rowCount() 返回受影响的记录数量if ($stmt->rowCount() > 0) {echo 新增成功,id . $db->lastInsertId() . <hr>;} else {//…...

【JavaWeb项目】简单搭建一个前端的博客系统

博客系统项目 本项目主要分成四个页面: 博客列表页博客详情页登录页面博客编辑页 该系统公共的CSS样式 common.css /* 放置一些各个页面都会用到的公共样式 */* {margin: 0;padding: 0;box-sizing: 0; }/* 给整个页面加上背景 */ html, body{height: 100%; }body {backgrou…...

iPerf3 -M参数详解,场景分析

本文目录iPerf3 -M参数说明几个典型测试场景中应该如何设定合适的-M参数值理想局域网模型&#xff08;无丢包&#xff0c;无抖动&#xff09;高丢包&#xff0c;无抖动模型高丢包&#xff0c;高抖动模型&#xff08;网络质量比较差&#xff0c;IP转发路径变化频繁&#xff09;总…...

java的基本语法以及注意事项

Java 基础语法一个 Java 程序可以认为是一系列对象的集合&#xff0c;而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。对象&#xff1a;对象是类的一个实例&#xff0c;有状态和行为。例如&#xff0c;一条狗是一个对象&#xff0c;它…...

matlab搭建IAE,ISE,ITAE性能指标

目录前言准备IAEISEITAE前言 最近在使用matlab搭建控制系统性能评价指标模型&#xff0c;记录一下 准备 MATLAB R2020 IAE IAE函数表达式如下所示&#xff1a; IAE函数模型如下所示&#xff1a; ISE ISE函数表达式如下所示&#xff1a; ISE函数模型如下所示&#xff…...

docker安装mysql

在安装Mysql之前&#xff0c;我们可以先查看一下我们的镜像&#xff0c;输入命令&#xff1a; docker images 能发现&#xff0c;镜像里面只有一个Nginx&#xff0c;并没有Mysql 然后我们可以像上一篇安装Nginx一样&#xff0c;安装Mysql镜像。 输入以下命令&#xff0c;安装…...

Leetcode 回溯详解

回溯法 回溯法有“通用解题法”之称&#xff0c;用它可以系统地搜索问题的所有解。回溯法是一个既带有系统性又带有跳跃性的搜索算法。 在包含问题的所有解的解空间树中&#xff0c;按照深度优先搜索(DFS)&#xff09;的策略&#xff0c;从根结点出发深度探索解空间树。当探索…...

AI_Papers:第一期

2023.02.06—2023.02.12 文摘词云 Top Papers Subjects: cs.CL 1.Multimodal Chain-of-Thought Reasoning in Language Models 标题&#xff1a;语言模型中的多模式思维链推理 作者&#xff1a;Zhuosheng Zhang, Aston Zhang, Mu Li, Hai Zhao, George Karypis, Alex Sm…...

C/C++内存管理

C/C内存管理C/C内存分布C语言中内存管理的方式&#xff1a;malloc/calloc/realloc/freeC内存管理方式内置类型自定义类型operator new 与operator deletenew和delete的实现原理内置类型自定义类型定位new表达式(placement-new)new/delete与malloc/free的区别C/C内存分布 我们先…...

【大数据hive】hive 函数使用详解

一、前言 在任何一种编程语言中&#xff0c;函数可以说是必不可少的&#xff0c;像mysql、oracle中&#xff0c;提供了很多内置函数&#xff0c;或者通过自定义函数的方式进行定制化使用&#xff0c;而hive作为一门数据分析软件&#xff0c;随着版本的不断更新迭代&#xff0c…...

彻底搞懂分布式系统服务注册与发现原理

目录 引入服务注册与发现组件的原因 单体架构 应用与数据分离...

安卓Camera2用ImageReader获取NV21源码分析

以前如何得到Camera预览流回调 可以通过如下方法&#xff0c;得到一路预览回调流 Camera#setPreviewCallbackWithBuffer(Camera.PreviewCallback)&#xff0c;可以通过如下方法&#xff0c;设置回调数据的格式&#xff0c;比如 ImageFormat.NV21 Camera.Parameters#setPreview…...

24. 两两交换链表中的节点

文章目录题目描述迭代法递归法参考文献题目描述 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&a…...

linux006之帮助命令

linux帮助命令简介&#xff1a; linux的命令是非常多的&#xff0c;光靠人是记不住的&#xff0c;在工作中一般都会去网上查&#xff0c;这是有外网的情况下&#xff0c;如果项目中不允许访问外网&#xff0c;那么linux的帮助命令就可以派上用场了&#xff0c; linux帮助命令是…...

【C++初阶】十三、模板进阶(总)|非类型模板参数|模板的特化|模板分离编译|模板总结(优缺点)

目录 一、非类型模板参数 二、模板的特化 2.1 模板特化概念 2.2 函数模板特化 2.3 类模板特化 2.3.1 全特化 2.3.2 偏特化 三、模板分离编译 四、模板总结&#xff08;优缺点&#xff09; 前言&#xff1a;之前模板初阶并没有把 C模板讲完&#xff0c;因为当时没有接触…...

Linux之文本搜索命令

文本搜索命令学习目标能够知道文本搜索使用的命令1. grep命令的使用命令说明grep文本搜索grep命令效果图:2. grep命令选项的使用命令选项说明-i忽略大小写-n显示匹配行号-v显示不包含匹配文本的所有行-i命令选项效果图:-n命令选项效果图:-v命令选项效果图:3. grep命令结合正则表…...

微信小程序Springboot 校园拼车自助服务系统java

系统管理员&#xff1a; 管理员账户管理&#xff1a;在线对管理员的账户信息进行管理&#xff0c;包括对管理员信息的增加修改以及密码的修改等。 站内新闻管理&#xff1a;在后台对站内新闻信息进行发布&#xff0c;并能够对站内新闻信息进行删除修改等。 论坛版块管理&#x…...

【Unity3D 常用插件】Haste插件

一&#xff0c;Haste介绍 Haste插件是一款针对 Unity 3D 的 Everthing软件&#xff0c;可以实现基于名称快速定位对象的功能。Unity 3D 编辑器也自带了搜索功能&#xff0c;但是在 project视图 和 Hierarchy视图 中的对象需要分别查找&#xff0c;不支持模糊匹配。Haste插件就…...

【c++面试问答】全局变量和局部变量的区别

问题 C中的全局变量和局部变量有什么区别&#xff1f; 注&#xff1a;内容全部参考自文末的参考资料 全局变量和局部变量的区别 可以从以下4个角度来区分&#xff1a; 区别全局变量局部变量作用域全局作用域局部作用域内存分配全局变量在静态数据区静态局部变量在静态数据区…...

Java List集合

6 List集合 List系列集合&#xff1a;添加的元素是有序&#xff0c;可重复&#xff0c;有索引 ArrayList: 添加的元素是有序&#xff0c;可重复&#xff0c;有索引LinkedList: 添加的元素是有序&#xff0c;可重复&#xff0c;有索引Vector &#xff1a;是线程安全的&#xff…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...

跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践

在电商行业蓬勃发展的当下&#xff0c;多平台运营已成为众多商家的必然选择。然而&#xff0c;不同电商平台在商品数据接口方面存在差异&#xff0c;导致商家在跨平台运营时面临诸多挑战&#xff0c;如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...

【深尚想】TPS54618CQRTERQ1汽车级同步降压转换器电源芯片全面解析

1. 元器件定义与技术特点 TPS54618CQRTERQ1 是德州仪器&#xff08;TI&#xff09;推出的一款 汽车级同步降压转换器&#xff08;DC-DC开关稳压器&#xff09;&#xff0c;属于高性能电源管理芯片。核心特性包括&#xff1a; 输入电压范围&#xff1a;2.95V–6V&#xff0c;输…...