初学php多文件保存小case

php+html

PHP:

知识点:

  1. json_encode  数组转字符串
  2. json_decode  字符串转换成数组   默认不会把对象转换成数组:json_decode(对象,true);//转换成数组 
  3. get和post的区别?
            1.get参数显示在地址栏,不安全,信息泄露
            2.get比post数据量少很多
            3.传文件只能用post   安全性高
  4. multiple:多个文件上传
<?php 

	$old_info = file_get_contents('data/product.json');//获取旧的信息 (字符串)

	$save_info = json_decode($old_info,true);//转换成数组 
	 if (!empty($_FILES)) {
	 	$desc_pic_a = $_FILES['desc_pic']['tmp_name'];
	 	if (!empty($desc_pic_a)) {

	 		//有图才遍历,否则会error
	 		//随机数
	 		//rand(1,99)
	 		foreach ($desc_pic_a as $key => $value) {
	 			$file_type = $_FILES['desc_pic']['type'][$key];
	 			//字符串分割
	 			//explode
	 			list($type,$houzui) = explode("/",$file_type);
	 			//
	 			$first_name = time().rand(1000,9999);
	 			copy($value,'data/'.$first_name.'.'.$houzui);
	 		}
	 	}
	 	
	 	// echo move_uploaded_file($_FILES['thumb']['tmp_name'],"data/222.jpg");
	 }
	if (count($_GET)>0) {
		$product_name = $_GET['product_name'];
		$price = $_GET['price'];
		$save_info[] = ['product_name'=> $product_name,'price'=> $price];  //二维数组 关联数组
		file_put_contents("data/product.json", json_encode($save_info));   
		// json_encode  数组转字符串      json_decode  字符串转换成数组
	}else{
		//没有   显示列表
		echo('没有就显示列表');
	}
 ?>

html:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>第二个表单</title>
    <link href="https://cdn.bootcss.com/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet">
</head>

<body>
    <div class="container">
        <div class="row">
            <form action="" class="form" method="post" enctype="multipart/form-data">
                
                <div class="form-group">
                    <label for="">商品名称</label>
                    <input type="text" name="product_name" class="form-cotrol">
                </div>
                <div class="form-group">
                        <label for="">商品图片</label>
                        <input type="file" name="thumb" class="form-cotrol" >
                    </div>
                
                    <div class="form-group">
                        <label for="">商品价格</label>
                        <input type="text" name="price" class="form-cotrol">
                    </div>
                    <div class="form-group">
                    	<label for="">商品描述图</label>
                    	<input type="file" name="desc_pic[]" class="form-cotrol" multiple>
                	</div>
                
                    <div class="form-group">
                        <!-- primary: 绿色 		danger:红色 -->
                        <input type="submit" class="btn btn-primary" value="保存"></input>
                    </div>
            </form>
        </div>
        <table class="table">
            <tr>
                <th>商品类型</th>
                <th>商品名称</th>
                <th>商品价格</th>
                <th>商品图片</th>
            </tr>
            <?php 
            if(!empty($save_info)){
			foreach($save_info as $key => $value) {
				echo "<tr>
				<td></td>
				<td>{$value['product_name']}</td>
				<td>{$value['price']}</td>
				<td></td>
			</tr>";
			}
		}
			 ?>
        </table>
    </div>
</body>

</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值