php删除字符串最后一个字符

php删除字符串最后一个字符 方法一、substr 一般情况下,我用的是substr,关于substr的更多解释可以看官方手册 string substr ( string $string , int $start [, int $length ] ) 第一个参数是父字符串,第二个参数是子字符串开始的下标,第三个参数是子字符串的长度 $str = "Hello Nemo!"; $str2 = substr(str, 0, strlen($str) - 1); 上面这个方法是设置截取从0号下标开始的长度为strlen($str) - 1的子字符串。 如果只是想要去除字符串里面的最后一个字符,可以使用下面这个更简洁的办法,不过一定要确认字符串里面有内容。 $str = "Hello Nemo!"; $str2 = substr(str, 0, -1); 关于判断字符串长度strlen这个函数,我在我的另外一篇笔记里面有讲到判断英文字符串长度和判断中文字符串长度。 方法二、…

php-在mysql里批量插入数据

假如说我有这样一个表,我想往这个表里面插入大量数据 CREATE TABLE IF NOT EXISTS `user_info` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键', `name` varchar(255) NOT NULL default '' COMMENT '姓名', `age` int(11) NOT NULL default '0' COMMENT '年龄', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表'; 批量插入 方法一、使用for循环插入 在往mysql插入少量数据的时候,…

safari下载文件自动加了html后缀

如何下载文件? 方法一、直接通过nginx下载静态文件 如果文件是保存在服务器上面的,可以直接用nginx下载文件 比如说可以供用户下载pdf文件,那么我的nginx配置可以是这样子的: location ~ /document/(.*)\.pdf$ { root /home/nemo/myfile; try_files /$uri 404; } 按照上面的配置,当我请求http://fbd.intelleeegooo.cc/document/test.pdf的时候,我服务器上的位于/home/nemo/myfile/document/test.pdf的这个文件就被下载了。当找不到相应的文件的时候,就会返回404。 方法二、通过php读取文件并下载 但上面这种方式是所有人都可以下载pdf文件的,假如说下载文件这个动作是与账号有关的,比如说某用户只能下载某些文件,那么就需要在php里面对用户账户进行处理并且下载相关文件。 看我在index.php里面这段示例代码,这段代码的功能下载test.txt文件 <?php $filePath = '/home/…

在php里面如何执行linux命令

php如何执行某个命令 ,官方手册在这里 我们先从shell_exec来说如何使用shell_exec在php里面执行shell命令先来试一下,使用php执行某个shell命令,该命令是mkdir testdir。 <?php $cmd = 'mkdir testdir'; shell_exec($cmd); 在这个php脚本执行之前,目录里面是这样子的: 执行之后,目录里面是如下图所示,多了一个testdir文件夹,这是通过我们刚刚在php脚本里面执行shell命令生成的 shell命令执行失败会如何?假如说执行shell命令的时候出错了,后面的php代码还能运行吗?看下面这个例子,我要执行的命令是读取并运行test.sh这个文件里面的内容,但是这个文件实际是不存在的。 <?php $cmd = 'source test.sh'; shell_exec($cmd); print_r("---the end---\n"); 它的打印结果是: sh: line 0: source: test.sh:…

php之strtotime需注意

php之strtotime需注意 var_dump(date('Y-m-d')); var_dump(date('Y-m-d', strtotime('- 1 day'))); var_dump(date('Y-m-d', strtotime('+ 2 day'))); var_dump(date('Y-m-d', strtotime('- 1 week'))); var_dump(date('Y-m-d', strtotime('+ 2 week'))); 打印出来的结果是: string(10) "2018-10-09" string(10) "2018-10-08" string(10)…

php里面判断字符个数

php里面判断字符个数 官方手册上说了,可以用strlen和mb_strlen来计算字符串长度 这两个有点区别,比如说看下面的示例代码: <?php $strEn = 'abcd'; $strZh = '测试'; print_r(strlen($strEn). "\n"); print_r(strlen($strZh). "\n"); print_r(mb_strlen($strEn, 'UTF8') . "\n"); print_r(mb_strlen($strZh, 'UTF8') . "\n"); ?> 打印出来是这样的 4 6 4 2…

php将md转成pdf

在之前一篇笔记里面讲到了安装pandoc来生成pdf文件,其实我在使用pandoc之前,来想过用php的第三方库来将md转成html,然后把html转换成pdf。 将md转成html 我用的php库是"erusev/parsedown": "^1.7",官方链接在这里 使用Parsedown::instance->text($mdStr)就能够将md转成html,如下方代码所示。md到html的转换耗时很短 $html = Parsedown::instance()->text($mdStr); 将html转成pdf 我用的是库是"dompdf/dompdf": "^0.8.2", 官方链接在这里。 为了使生成的html指定字体,我还给html指定了font-family,注意下面直接使用$dompdf->stream()可以实现在浏览器里面下载。但是如果文件太大的时候,…

mysql 用户名长度限制导致php连接不上

mysql用户名长度的限制 最近遇到了一个小问题,但是耗费了很长时间来定位问题。 原因是,连接mysql的时候,一直报错说连接不上,具体是说Access denied for user 'xxxx_xxxx_xxxx@192.168.1.10' (using password:YES)。刚开始我以为是使用的第三方库的问题,排查后发现不是。后来我以为是我所在的网段或者我的机器出问题了,这也不是。 最后,发现这个报错信息里面的username不对,是被截断了的。上网一搜,是mysql的用户名太长了,导致连接不上。 在mysql里面,它是这样规定的: MySQL user names can be up to 32 characters long Operating system user names may be of a…