在JavaScript中,使用typeof可以检测基本数据类型,使用instanceof可以检测引用数据类型。在PHP中,也有检测数据类型的方法,具体如下:
1、输出变量的数据类型(gettype)
代码如下 | 复制代码 |
<?php
$arry=array('a','b','c');
echogettype($arry);//array
?> |
2、输出变量的数据类型、包含的数量以及具体内容(var_dump)
查看源码打印代码帮助
代码如下 | 复制代码 |
<?php
$str='hello world';
var_dump($str);//string(11) "hello world"
?> |
3、检测某个变量是否是指定的数据类型(is_array、is_string、is_int、is_double等),如果为真返回1,如果为假返回空。
查看源码打印代码帮助
代码如下 | 复制代码 |
<?php
$num= 123;
if(is_array($num)){
echo'这是一个数组';
}elseif(is_string($num)){
echo'这是一个字符串';
}elseif(is_int($num)){
echo'这是一个整数';
}elseif(is_double($num)){
echo'这是一个浮点数';
}
?> |
或许你的朋友正在寻找这个问题的答案,赶紧分享给他吧!
这篇文章主要介绍了php 处理 form 表单提交多个 name 属性值相同的 input 标签问题的解决方法,需要的朋友参考下吧一 问题
在公司的开发过程中,遇到了一个问题:如何处理 form 表单提交了多个 name 属性值相同的 input 标签?源码如下(源码是在 form 表单之中的):
代码如下 | 复制代码 |
<!--{loop$address$index$one}--> <divclass="address_item"> <p> <label> <input type="hidden"name="express_price"value="{$one['express_price']}"/> <input type="hidden"name="state_fare"value="{$one['state_fare']}"/> <input type="hidden"name="id"value="{$one['id']}"/> <input type="radio"<!--{if$one['default']=='Y'}-->checked<!--{/if}-->name="address"value="{$one['id']}"/><span name="mobile">{$one['mobile']}</span> </label> </p> </div> <!--{/loop}--> |
二 解决方法
在上述源码中,通过 loop 循环,在 form 表单中生成了多个name属性值相同的 input 元素,当点击提交时,后台的 php 文件使用 $_POST 仅能获取到一个 div 元素中的 input元素传过来的值,但是,radio 类型的 input 元素传过来的值一定是被选中的那一个。据此,修改上述源码中一些 input 元素的相同 name 属性值为数组,再在后台 php 文件通过被选中的 radio 类型的 input 元素的 name 属性值,确定所传过来的整个 div 元素。修改后的代码如下:
代码如下 | 复制代码 |
<!--{loop$address$index$one}--> <divclass="address_item"> <p> <label> <input type="hidden"name="express_price[]"value="{$one['express_price']}"/> <input type="hidden"name="state_fare[]"value="{$one['state_fare']}"/> <input type="hidden"name="id[]"value="{$one['id']}"/> <input type="radio"<!--{if$one['default']=='Y'}-->checked<!--{/if}-->name="address"value="{$one['id']}"/> <span name="mobile">{$one['mobile']}</span> </label> </p> </div> <!--{/loop}--> |
php 文件:
代码如下 | 复制代码 |
$key= 0; $address_id=intval($_POST["address"]); foreach($_POST['id']as$k=>$v) { if($v==$address_id) $key=$k; } $_POST['express_money'] =$_POST['exporess_price'][$key]; |
以上所述是小编给大家介绍的解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题,希望对大家有所帮助。在此也非常感谢大家对本网站的支持!
这篇文章主要为大家详细介绍了php使用curl实现简单模拟提交表单功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下php 使用curl 进行简单模拟提交表单,供大家参考,具体内容如下
代码如下 | 复制代码 |
//初始化curl $ch= curl_init(); $url='xxx' $option= [ CURLOPT_URL =>$url, CURLOPT_HEADER => 1, CURLOPT_RETURNTRANSFER => 1, ]; curl_setopt_array($ch,$option); $output= curl_exec($ch); preg_match_all('/Set-Cookie: (.*);/i',$output,$str);//正则匹配 //如果有token的话就获取token preg_match('/token = \"(.*)\"/i',$output,$token); if(empty($str)) { returnfalse; } $cook=$str[1]; $cookie= implode('',$cook);
$up_url='xxx' $post_data= [ 'name'=>'test_', 'tel'=>�', 'email'=>'qqhahadfdfads@163.com', 'message'=>'this is my message;', '_token'=>$token[1], ]; $options= [ CURLOPT_URL =>$up_url, CURLOPT_RETURNTRANSFER => 1, CURLOPT_HEADER => 1, CURLOPT_USERAGENT =>"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36", CURLOPT_COOKIESESSION => 1, CURLOPT_POST => 1, CURLOPT_POSTFIELDS =>$post_data, CURLOPT_COOKIE =>$cookie ]; curl_setopt_array($ch,$options); $res= curl_exec($ch); // $info = curl_getinfo($ch); if($res=== FALSE) { p('curl Error: '. curl_error($ch)); } curl_close($ch); p($res); |
取自基于laravel开发的一个网站, laravel中表单中有一个csrf_token 的. 所以就得获取token, 还有带上cookie
这里注意的是, 不能同时初始化两个curl, 否则token或者cookie会发生变化, 如果你需要初始化两个curl的话, 可以使用CURLOPT_COOKIEJAR设置. [详情看手册]
然后运行下:binggo
使用curl时, 比较重要的就是一个cookie的应用, 翻了下手册, 设置cookie的就有四个...CURLOPT_COOKIESESSION、CURLOPT_COOKIE、CURLOPT_COOKIEFILE、CURLOPT_COOKIEJAR
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本网站。
本篇文章主要介绍了PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图等的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧JpGraph简介
JpGraph是开源的PHP统计图表生成库,基于PHP的GD2图形库构建,把生成统计图的相关操作封装,隐藏了部分复杂的操作,使在PHP页面上输出统计图表变得更加容易。JpGraph的官方网站为:http://jpgraph.net,开发者可以在上面免费下载最新版的JpGraph和阅读相关帮助文档或示例程序。
JpGraph的配置
(1)修改文件php.ini
在include_path中添加jpgraph的目录路径,并将jpgraph解压后的src目录名称更改为jpgraph。
(2)检查PHP是否支持GD库
在php.ini文件中找到语句;extension=php_gd2.dll。把上述语句前的;号去掉,即去掉注释。如果因为PHP版本不同而找不到此语句,则可直接添加extension=php_gd2.dll
(3)修改文件jpgraph_gb2312.php
找到函数:function gb2utf8($gb)
把函数修改为:
代码如下 | 复制代码 |
functiongb2utf8($gb) { return$gb; } |
即不使用gb2编码方式转utf8方式的那段代码。
折线图
代码如下 | 复制代码 |
<?php require_once("jpgraph/jpgraph.php"); require_once("jpgraph/jpgraph_line.php");
$data1=array(523,634,371,278,685,587,490,256,398,545,367,577);//第一条曲线的数组
$graph=newGraph(500,300); $graph->SetScale("textlin"); $graph->SetShadow(); $graph->img->SetMargin(60,30,30,70);//设置图像边距
$graph->graph_theme = null;//设置主题为null,否则value->Show(); 无效
$lineplot1=newLinePlot($data1);//创建设置两条曲线对象 $lineplot1->value->SetColor("red"); $lineplot1->value->Show(); $graph->Add($lineplot1);//将曲线放置到图像上
$graph->title->Set("CDN流量图"); //设置图像标题 $graph->xaxis->title->Set("月份");//设置坐标轴名称 $graph->yaxis->title->Set("流 量(Gbits)"); $graph->title->SetMargin(10); $graph->xaxis->title->SetMargin(10); $graph->yaxis->title->SetMargin(10);
$graph->title->SetFont(FF_SIMSUN,FS_BOLD);//设置字体 $graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD); $graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD); $graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth()); $graph->Stroke();//输出图像 ?> |
柱状图
代码如下 | 复制代码 |
<?php require_once("jpgraph/jpgraph.php"); require_once("jpgraph/jpgraph_bar.php");
$data=array(19,23,34,38,45,67,71,78,85,87,96,145); $ydata=array("一","二","三","四","五","六","七","八","九","十","十一","十二");
$graph=newGraph(500,300);//创建新的Graph对象 $graph->SetScale("textlin");//刻度样式 $graph->SetShadow(); //设置阴影 $graph->img->SetMargin(40,30,40,50);//设置边距
$graph->graph_theme = null;//设置主题为null,否则value->Show(); 无效
$barplot=newBarPlot($data);//创建BarPlot对象 $barplot->SetFillColor('blue');//设置颜色 $barplot->value->Show();//设置显示数字 $graph->Add($barplot);//将柱形图添加到图像中
$graph->title->Set("CDN流量图"); $graph->xaxis->title->Set("月份");//设置标题和X-Y轴标题 $graph->yaxis->title->Set("流 量(Mbits)"); $graph->title->SetColor("red"); $graph->title->SetMargin(10); $graph->xaxis->title->SetMargin(5); $graph->xaxis->SetTickLabels($ydata);
$graph->title->SetFont(FF_SIMSUN,FS_BOLD);//设置字体 $graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD); $graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD); $graph->xaxis->SetFont(FF_SIMSUN,FS_BOLD); $graph->Stroke(); ?> |
饼状图
代码如下 | 复制代码 |
<?php require_once("jpgraph/jpgraph.php"); require_once("jpgraph/jpgraph_pie.php"); require_once("jpgraph/jpgraph_pie3d.php");
$data=array(19,23,34,38,45,67,71,78,85,87,90,96);
$graph=newPieGraph(550,500); $graph->SetShadow();
$graph->title->Set("CDN流量比例"); $graph->title->SetFont(FF_SIMSUN,FS_BOLD);
$pieplot=newPiePlot3D($data);//创建PiePlot3D对象 $pieplot->SetCenter(0.4, 0.5);//设置饼图中心的位置 $pieplot->SetLegends($gDateLocale->GetShortMonth());//设置图例 $graph->Add($pieplot); $graph->Stroke(); ?>
|
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持本网站!