首页 > 编程技术 > php

PHP检测数据类型的几种方法

发布时间:2017-7-6 23:49

本文介绍了PHP检测数据类型的几种方法,非常实用,有兴趣的同学快来看看吧

在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();

?>

 

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持本网站!

标签:[!--infotagslink--]

您可能感兴趣的文章: