PHP中使用foreach控制数组的扫描

foreach ($c_f_arr as &$c_f) {
				if (trim($c_f[0])==trim($char)) {
					echo "$char is exist <br>";
					$c_f[1]++;
					
					echo "hahaha <br>";
					echo "this is cf: $c_f[1] <br>";
				}
				else {
					echo "$char is not exist <br>";
					$c_new=array(trim($char),'1');
					array_push($c_f_arr, $c_new);
					$n++;
				}
			} 

实现的结果总是出现插入值之后,foreach就从头开始扫数组了,然后就会插入好几次。。。foreach是有这个规定吗?怎么破?还在考虑。。。

问题原因:推断是因为在插入了新值之后,数组的指针会跑到最后,因此下一次的foreach又会从头开始扫描数组

解决的方法:使用for,而不用foreach,停止条件i<count($arr);

### 回答1: 下面是一个简单的 PHP 代码示例,它可以扫描给定目录的所有文件和文件夹: ``` <?php $directory = '/path/to/directory'; $files = array(); if (is_dir($directory)) { if ($handle = opendir($directory)) { while (($file = readdir($handle)) !== false) { if ($file != "." && $file != "..") { $files[] = $file; } } closedir($handle); } } print_r($files); ?> ``` 这段代码会输出给定目录的所有文件和文件夹的名称,如果要输出文件的其他属性,可以使用 PHP 的 stat() 函数。 此代码仅作为示例使用,请在使用前进行安全审查。 ### 回答2: 编写一个基于PHP的Web目录扫描工具相对简单,需要使用PHP的文件和目录操作函数,以及递归扫描目录的方法。 首先,我们可以使用PHP内置的`scandir()`函数获取指定目录下的所有文件和子目录的列表。然后,可以遍历这个列表,对每个文件和目录进行处理。 在处理每个文件和目录时,可以使用`is_dir()`函数判断当前项是否为目录。如果是目录,则可以将这个目录添加到扫描结果,并使用递归调用自己来继续扫描子目录。如果是文件,则可以将这个文件添加到扫描结果。 在扫描过程,可以使用`file_exists()`函数来判断指定的路径是否存在,以避免无效的路径。同时,可以使用`basename()`函数获取文件或目录的名称,以便存储到扫描结果。 最后,可以将扫描结果以数组或字符串的形式返回,并在网页显示出来。可以使用HTML的`<ul>`和`<li>`标签来展示目录结构,并添加适当的样式以美化界面。 需要注意的是,由于目录扫描涉及文件和目录的访问,可能存在安全隐患。为了防止恶意用户获取敏感信息,可以在读取目录前进行权限检查,并对用户输入的路径进行过滤和验证。 总的来说,用PHP编写一个简单的Web目录扫描工具并不复杂,如果按照以上步骤进行编写,基本可以实现这个功能。 ### 回答3: PHP是一种广泛应用于Web开发的脚本语言,可以实现各种功能和工具。下面是使用PHP编写一个简单的Web目录扫描工具的方法: 1. 首先,创建一个PHP脚本文件,例如"directory_scan.php"。 2. 在脚本文件使用PHP的内置函数"scandir()"来扫描指定目录下的所有子目录和文件。可以使用一个变量来存储目标目录的路径,比如"target_directory"。 3. 通过使用"scandir()"函数扫描目录,将结果存储在一个数组。可以使用一个变量来存储这个数组,例如"directory_contents"。 4. 使用一个循环遍历目录内容的数组,并对每个元素进行处理。可以使用"foreach"循环来完成这个任务。 5. 在循环,检查每个元素是目录还是文件。可以使用"is_dir()"函数来判断。如果是目录,则递归调用本身,并传递目录的路径作为参数,继续扫描该目录下的内容。 6. 如果是文件,则将文件名输出到屏幕上。可以使用"echo"语句完成这个操作。 7. 在脚本的末尾调用这个函数,并传递一个目标目录作为参数,以开始进行扫描。例如,可以使用"scan_directory('path/to/directory')"来调用函数。 这只是一个简单的示例,展示了如何使用PHP编写一个基本的Web目录扫描工具。实际可能需要更多的功能和错误处理,但这个例子可以作为一个起点,并根据具体需求进行扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值