导航:首页 > 编程语言 > phpddd

phpddd

发布时间:2023-11-12 22:03:59

‘壹’ php如何从文本中提取指定行数内容

PHP如何从文本中提取指定行数内容?在php中,通过fopen()方法打开文件,在while中使用fgets()方法获取每行数据,每读到一行,就使用标识记录一次,通过累计记录数计算出文件的行数。下面介绍实现的过程。
方法/步骤分步阅读
1
/7
新建一个php文件,命名为handle.php,用于讲解PHP怎么获取文件的行数。
2
/7
新建一个文本文件,命名为test.txt,在里面输入四行数据,分别是aaa,bbb,ccc,ddd。
3
/7
在handle.php文件里,使用fopen方法以只读方式打开test.txt文件,代码如下:
4
/7
在handle.php文件里,创建一个初始变量i,用于保存文件内容的行数。
5
/7
通过while()语句,使用fgets方法从文件指针中读取一行,每读取一行,变量i自加一,直到到达文件末尾停止while的执行。
注:!feof($handle),函数检测是否已到达文件末尾。
6
/7
最后,使用echo输出文件的行数,并通过fclose关闭文件资源。代码如下:
7
/7
在浏览器执行handle.php文件,查看输出的行数,执行的结果为4行。
内容仅供参考并受版权保护

‘贰’ PHP文件上传代码用法

php文件上传代码编写过程

先判断是否上传文件

如果有再来判断上传中是否出错

如果出错 则提示出错信息

如查没出错 再判断文件类型

如果类型符合条件 再判断指定目录中有没有存在该文件

如果没有就把该文件移至指定目录

在php中上传文件必须知道的几个东西

$_FILES[ myfile ][ name ] 是指被上传文件的名称

$_FILES[ myfile ][ type ] 是指被上传文件的类型

$_FILES[ myfile ][ size ] 是指被上传文件的大小 单位为字节(B)

$_FILES[ myfile ][ tmp_name ] 是指被上传文件存在服务器中的临时副本文件名称 文件被移动到指定目录后临文件将被自动消毁

$_FILES[ myfile ]["error"] 是指由文件上传中有可能出现的错误的状态码 关于各状态含义后在会说明

先来看一下HTML部分

代码如下 复制代码

?<form action="upload php" method="post" enctype="multipart/form data"> 上传 <input type=file name=myfile /> <input type=submit name=submit value="上传" /> </form>

说明

form标答的action="upload php"是指点击这个form中的submit的时候 这个上传命令会被发送到这个叫 upload php的页面去处理 method="post"是指以post方式去送 enctype="multipart/form data"属性规定了在提交这个表单时要使用哪种内容类型 在表单需要二进制数据时 比如文件内容 请使用"multipart/form data" 如果要上传文件 这个属性是必要的 input中的type="file"时 规定了应该把输入作为文件来处理 并且在input后面会有一个浏览的按钮

我们再来看一个PHP处理页面 upload php

代码如下 复制代码

<?php if($_FILES[ myfile ][ name ] != ) { if($_FILES[ myfile ][ error ] > ) { echo "错误状态 " $_FILES[ myfile ][ error ]; } else { move_uploaded_file($_FILES[ myfile ][ tmp_name ] "uploads/" $FILES[ myfile ][ name ]); echo "<script>alert(上传成功!);</script>"; } } else{ echo "<script>alert(请上传文件!);</script>"; } ?>

上面超级简单 我们现在来升级一下

upload php

代码如下 复制代码

<!DOCTYPE HTML PUBLIC " //W C//DTD HTML Transitional//EN"> <> <head> <title>ddd</title> <meta equiv="content type" content="text/; charset=UTF "> </head> <body> <! 文件上传要注意: 要有enctyp method="post" > <form enctype="multipart/form data" action="uploadProcess php" method="post" > <table> <tr><td>请填写用户名</td><td><input type=text name=username></td></tr> <tr><td>请简单介绍文件</td><td><textarea rows=" " cols=" " name=fileintro class="page_speeder_734321457"></textarea></td></tr> <tr><td>请上传你的文件</td><td><input type=file name=myfile></td></tr> <tr><td colspan=" "><input type=submit value="上传"><td></tr> </table> </form> </body> </>

uploadProcess php

代码如下 复制代码

<?php

//接收 $username=$_POST[ username ]; $fileintro=$_POST[ fileintro ]; //echo $username $fileintro; //获取文件信息 /* echo "<pre>"; print_r($_FILES); echo "</pre>"; */ //获取文件的大小 $file_size=$_FILES[ myfile ][ size ]; if($file_size> * * ){ echo "<script type= text/javascript >window alert( 文件不能大于 M )</script>"; exit(); }

//获取文件类型 $file_type=$_FILES[ myfile ][ type ]; if($file_type!="image/jpeg" && $file_type!="image/pjpeg"){ echo "文件类型只能是 jpg 格式"; exit(); }

//判断上传是否OK if(is_uploaded_file($_FILES[ myfile ][ tmp_name ])){ //得到上传的文件 转存到你希望的目录 $upload_file=$_FILES[ myfile ][ tmp_name ]; //防止图片覆盖问题 为每个用户建立一个文件夹 $user_path=$_SERVER[ DOCUMENT_ROOT ] "/file/up/" $username; if(!file_exists($user_path)){ mkdir ($user_path); }

//$move_to_file=$user_path "/" $_FILES[ myfile ][ name ]; //防止用户上传用户名相同的问题 $file_true_name=$_FILES[ myfile ][ name ]; $move_to_file=$user_path "/" time() rand( ) substr($file_true_name strripos($file_true_name " "));

//echo $upload_file $move_to_file; //中文要转码 if(move_uploaded_file($upload_file iconv("utf " "gb " "$move_to_file"))){ echo $_FILES[ myfile ][ name ] "上传成功"; }else{ echo "上传失败"; } }else{ echo "上传失败"; }

?>

注意:

我举个例子大家就知道 比如一个图片文件 pic jpg 我们用 strrchr处理 strrchr(pic jpg ) 它将返回 jpg 明白了吗?该函数返回指定字符在该字符串最后出现的位置后的字符 配合 substr() 我们就可以取到jpg 这样我们就得到了文件的后缀名 来判断上传文件是否符合指定格式 本程序把指定的格式放在一个数组中 实际使用时可根据需要添加

lishixin/Article/program/PHP/201311/20924

‘叁’ 如何获取PHP命令行参数

如何获取PHP命令行参数

使用 PHP 开发的同学多少都会接触过 CLI 命令行。经常会有一些定时任务或者一些脚本直接使用命令行处理会更加的方便,有些时候我们会需要像网页的 GET 、 POST 一样为这些命令行脚本提供参数。比如在针对某些日期做统计的脚本,就需要传递一个日期给它,这样我们就统计指定日期的一些数据。这类需求应该非常常见,那么,我们都是如何来接收这些命令行的参数的呢?今天,就来介绍一下这方面的内容。

$argv 获得所有空格分隔的参数列表

这个变量估计是大家用得比较多的一个接参变量了。它是 PHP 为我们准备好的一个固定变量,目的就是获取传递给脚本的参数数组。

print_r($argv); // php 如何获取PHP命令行参数.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd // Array // ( // [0] => 如何获取PHP命令行参数.php // [1] => --a=1 // [2] => -b=2 // [3] => -c=3 // [4] => -d=4 // [5] => --e=5 // [6] => ccc // [7] => ddd // )

这个数组是以参数间隔的空格进行分隔的。第1个元素是当前运行的脚本文件名,也就是说,不管有没有参数,这个变量一定会有一个 $argv[0] 表示的是当前的脚本文件名。

在日常的开发需求中,其实使用这个变量就已经够用了。但是这明显不会是我们今天的主题,大家注意到上面的代码中我们有很多参数是 -x=xxx 的形式,这种形式的参数是不是和 Linux 的命令选项非常像,没错,这就是我们今天要重点介绍的:从命令行参数列表中获取选项。

getopt() 从命令行参数列表中获取选项

其实就是这样一个简单的函数,我们就可以像 Linux 的命令选项一样获取指定的命令值。而且不是像 $argv 按空格进行分隔,命令选项函数会将这些命令选项封装成数组,组成以选项名为键,以等号后面的内容为值的数组,更加方便我们的使用。

// php 如何获取PHP命令行参数.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd print_r(getopt('a:b:c:d:e:f:')); // Array // ( // [b] => 2 // [c] => 3 // [d] => 4 // )

是不是很神奇,而且非常直观吧,我们直接就拿到了 b 、 c 、d 的内容并且是格式非常清晰的键值数组形式。有同学要问了,a 和 e 呢?还有后面的 ccc 、 ddd 呢?

首先要说明的是,ccc 和 ddd 不是标准的选项参数,也就是说,这个函数接收的内容是以 - 开头的选项,所以 ccc 和 ddd 不会在这里输出,并且需要注意的是,非选项参数会中断选项参数的获取,在 ccc 之后如果继续添加 - 开头的选项也是无法获取到的,这个我们后面还会看到。而 -- 开头的选项参数呢?我们直接看下面的长选项功能。

长选项 // php 如何获取PHP命令行参数.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd print_r(getopt('', ['a:','b:','c:','d:','e:','f:'])); // Array // ( // [a] => 1 // [e] => 5 // )

没错,getopt() 函数的第二个参数就是定义这种 -- 开头的长选项的,而且需要注意的是,第一个参数是字符串类型,第二个长选项参数是数组类型的。那么我们把它们结合起来,就当然可以获取到全部的参数信息啦!

// php 如何获取PHP命令行参数.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd print_r(getopt('a:b:c:d:e:f:', ['a:','b:','c:','d:','e:','f:'])); // Array // ( // [a] => 1 // [b] => 2 // [c] => 3 // [d] => 4 // [e] => 5 // )

OK,参数选项获取没问题了吧,细心的同学肯定又发现了一个问题,这个 getopt() 函数的参数中定义的选项名称后面为啥都要加个冒号?这就涉及到我们的冒号规则了,请直接往下看。

冒号规则

getopt() 的前两个参数都支持一套关于选项获取的规则:

单独的字符(不接受值) 后面跟随冒号的字符(此选项需要值) 后面跟随两个冒号的字符(此选项的值可选)

我们还是直接通过代码来看一下。

// 一 // php 如何获取PHP命令行参数.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd print_r(getopt('abcdef')); // Array // ( // [b] => // [c] => // [d] => // ) // 二 // php 如何获取PHP命令行参数.php -f print_r(getopt('f::')); // Array // ( // [f] => // ) print_r(getopt('f:')); // Array // ( // ) // 三 // php 如何获取PHP命令行参数.php -f 22 print_r(getopt('f::')); // Array // ( // [f] => // ) print_r(getopt('f:')); // Array // ( // [f] => 22 // ) // 四 // php 如何获取PHP命令行参数.php -f=22 print_r(getopt('f::')); // Array // ( // [f] => 22 // ) print_r(getopt('f:')); // Array // ( // [f] => 22 // )

这一段比较长,我们一块一块来看。首先是不带冒号的 abcdef 写法,返回的数组中都包含键,但没有值,对应上面的规则就是不接受这些参数选项的值,你传了这些参数选项也是只有键名而内容是空的。

第二段是定义了一个参数,但是不给值,这时,双冒号 :: 会有键名,而单冒号 : 则什么都没有。

第三段是空格形式的选项值,双冒号 :: 有键名但没有值,单冒号 : 键值正常。

第四段是等号 = 形式的选项值,单双冒号都正常接收到键值。

选项参数中断

上文中我们提到过参数中断的问题,就是在选项参数之后如果有一个非选项参数的参数出现,getopt() 就无法再获取到这个非选项参数后面的所有内容了。

// php 如何获取PHP命令行参数.php -f=22 aa -b=33 // 选项的解析会终止于找到的第一个非选项,之后的任何东西都会被丢弃。 // Array // ( // [f] => 22 // )

通过这个测试可以清晰的看出后面的 b 选项无法获取。这时,如果我们想知道选项参数在什么地方或者因为哪个参数而中断的话,就可以使用 getopt() 函数的第三个参数了。

// php 如何获取PHP命令行参数.php -f=22 aa -b=33 $optind = null; getopt('f:b:', [], $optind); echo $optind, PHP_EOL; // 返回中断位置的索引值,2 echo $argv[$optind], PHP_EOL; // 等同于 $argv 的索引顺序,aa

注释已经写得很清晰了,第三个参数会回调一个参数选项中断位置的索引,并且这个索引是和 $argv 的索引顺序位置一致的。

总结

说实话,在没看文档前真的只知道有一个 $argv 变量可以用来获取命令行脚本的参数,通过这次学习才发现原来还有一个这么强大的选项参数函数。学习的过程非常简单,如何运用到真实的项目中才是关键所在,加油学习,努力实践吧!

测试代码:

https://github.com/zhangyue0503/dev-blog/blob/master/php/202006/source/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96PHP%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0.php

‘肆’ php 如何跳出if语句有几种方法

php 跳出if语句的方法有两种:
方法一、用goto语句修改代码如下:
<?php
if(1){
echo 111;
//如何在这跳出if语句,运行下面的代码?
goto a;
echo 222;
}
a:
echo 333;
?>
注:goto语句是php5.3以上包括5.3版本有效,对php5.2无效。
方法二、代码如下 :
while($a){
if ($b):
echo "ddd";
break;//这个return希望跳到if($c)这个if语句这里
endif;
break;
}
if($c){
if( $a && $b )
{
echo "ddd";
}
endif;
}

阅读全文

与phpddd相关的资料

热点内容
php判断终端 浏览:118
编译网页在线 浏览:920
国际版本服务器是什么意思 浏览:437
压缩机十年包换 浏览:532
内核编译之后安装到哪 浏览:58
单片机加场效应管 浏览:154
怎么关闭appstore 浏览:474
学编程入门语言 浏览:309
安卓机为什么总是出现升级提示 浏览:133
b树java实现 浏览:943
亚马逊云服务器到期了怎么续费 浏览:852
我的世界网易如何在服务器里面加光影 浏览:284
nat地址访问外网服务器 浏览:966
怎样用java编译一个心形 浏览:934
如何使用python中的pygame 浏览:836
python实用小工具 浏览:24
怎么在安卓手机上去除马赛克 浏览:235
农行浓情通app怎么下载 浏览:533
怎么把原文件夹找回来 浏览:535
俄罗斯方块实现python思路 浏览:735