resetphp
⑴ php写的微信公众平台代码如何进行断点调试
首先需要说明的是,php程序调试需要手动编写部分代码,目的是断截程序线程的执行,输出指定环节的结果,就是所谓的断点调试。所以,实际上需要讨论的问题是采用什么断点代码更合适。
die()和exit()
die()和exit()函数都有终止线程的作用,是php断点调试需要使用的最主要的函数,它们也是php程序员使用非常频繁的函数。然而两者又有什么区别呢?在程序调试时需要注意什么问题呢?
die()函数一般与“or”一并使用,写作“or die()”,经常看到这样的语句:
$file = fopen($filename, 'r') or die("抱歉,无法打开: $filename")
or在这里是这样理解的,因为在PHP中并不区分数据类型,所以$file既可以是int也可以bool,所以这样的语句不会报错。但其处理过程可能有些朋友不大明白。其实在大多数的语言中, bool or bool这样的语句中,如果前一个值为真后一个值就不会再判断了。这里也是的,所以如果fopen函数执行正确的话,会返回一个大于0的int值(这其实就是"真"),后面的语句就不会执行了。如果fopen函数执行失败,就会返回false,那么就会判断后面的表达式是否为真了。结果执行了die()之后,不管返回什么,程序都已经停止执行了,并且显示指定的出错信息,也就达到了调试的目的。就这样。
实际上,die和exit是等价的,都是用来终止当前脚本。
php手册对两者的解释如是说:
exit() 函数输出一条消息,并退出当前脚本。该函数是 die() 函数的别名。
die() 函数输出一条消息,并退出当前脚本。该函数是 exit() 函数的别名。
实例:
<?php $site = "http://www.w3school.com.cn/"; fopen($site,"r") or exit("Unable to connect to $site"); ?>
<?php $site = "http://www.w3school.com.cn/"; fopen($site,"r") or die("Unable to connect to $site"); ?>
var_mp()和print_r()
var_mp -- 打印变量的相关信息
void var_mp ( mixed expression [, mixed expression [, ...]] )
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
提示: 为了防止程序直接将结果输出到浏览器,可以使用输出控制函数(output-control functions)来捕获此函数的输出,并把它们保存到一个例如 string 类型的变量中。
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_mp ($a);
$b = 3.1;
$c = TRUE;
var_mp($b,$c);
?>
var_mp()可以输出多个变量,如:var_mp($b,$c)
print_r -- 打印关于变量的易于理解的信息
bool print_r ( mixed expression [, bool return] )
注: 参数 return 是在 PHP 4.3.0 的时候加上的
print_r() 显示关于一个变量的易于理解的信息。如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。
记住,print_r() 将把数组的指针移到最后边。使用reset() 可让指针回到开始处。
<pre>
<?php
$a = array ('a' => 'apple',
'b' => 'banana',
'c' => array ('x','y','z'));
print_r ($a);
?>
</pre>
上边的代码将输出:
<pre> Array ( [a] => apple [b] => banana [c] => Array ( [0] => x [1] => y [2] => z ) ) </pre>
如果想捕捉 print_r() 的输出,可使用 return 参数。若此参数设为 TRUE,print_r() 将不打印结果(此为默认动作),而是返回其输出。
例子:return 参数示例
<?php
$b = array ('m' => 'monkey',
'foo' => 'bar',
'x' => array ('x', 'y', 'z'));
$results = print_r ($b, true); //$results 包含了 print_r 的输出结果
?>
注: 如果想在 PHP 4.3.0 之前的版本中捕捉 print_r() 的输出,可使用输出控制函数。
注: 在 PHP 4.0.4 之前的版本中,如果给出的 array 或 object 包含了直接或间接指向自身的引用,print_r() 将永远继续下去。print_r($GLOBALS) 就是一个例子,因为 $GLOBALS 自身即是全局变量,其包含了指向自身的引用。
Zend Debugger
php断点调试,有人提到用Zend Debugger,简单方便,适合菜鸟使用。不过本人因没有用过,在此不作讨论。
⑵ thinkphp模板中图片按钮怎么设置重置功能 加入onclick="this.form.reset();"不行
这个无关thinkPHP的事,是你自己没明白input标签中type属性所有值的意思。
值 => 描述:
button => 定义可点击按钮(多数情况下,用于通过 JavaScript 启动脚本)。
checkbox=>定义复选框。
file => 定义输入字段和 "浏览"按钮,供文件上传。
hidden => 定义隐藏的输入字段。
image => 定义图像形式的提交按钮。
password => 定义密码字段。该字段中的字符被掩码。
radio => 定义单选按钮。
reset => 定义重置按钮。重置按钮会清除表单中的所有数据。
submit => 定义提交按钮。提交按钮会把表单数据发送到服务器。
text => 定义单行的输入字段,用户可在其中输入文本。默认宽度为 20 个字符。
看到没有,其中 的image是定义图像形式的提交按钮,即它与submit有相同的作用,只是它是以图像的形式呈现罢了。
那么怎么解决?非要把image换了才行么?不必,只需要你让“提交”动作失效即可。
怎么让它失效?在onclick的最后,加上一句return false;即可,即:
<inputtype="image"src="__PUBLIC__/Images/reset.png"onclick="this.form.reset();returnfalse;"/>
⑶ PHP页面间的传值问题,复选框及表单等
<?php
/*
* 以下是1.php的文件内容
* 我将你不想写的过程也省略了,改为JavaScript循环出来,不会有任何影响
* 你只需要复制我的代码新建1.php即可测试
*/
?>
<html>
<head>
<body>
<form name="form1" method="post" action="">
<table width="79%" border="1" align="center" bgcolor="#00FFFF">
<tr>
<td width="9%"><div align="center">姓名</div></td>
<td width="8%"> </td>
<td width="83%" colspan="31"> <div align="center">
<select name="year">
<option value="2011">2011
<option selected value="2012">2012
<option value="2013">2013
</select>年
<select name="month">
<script>
for(i=1;i<=12;i++){
document.write("<option value=" + i + ">" + i + "</option>");
}
</script>
</select>月</div></td>
</tr>
<tr>
<td> </td>
<td><div align="center">日期</div></td>
<script>
for(i=1;i<=31;i++){
document.write("<td>" + i + "</td>");
}
</script>
</tr><tr>
<?php
//while ($row=@mysql_fetch_array($result)){
$arrName = array("张三", "李四", "王五");
foreach ($arrName as $key => $name) {
?>
<td><? //echo $row['ChineseName'] ?><?php echo $name; ?> </td>
<td> </td>
<script>
for(i=1;i<=31;i++){
document.write("<td><input type=\"checkbox\" name=\"checkbox[<?php echo $key; ?>][]\" value=" + i + " /></td>");
}
</script>
</tr>
<?php } ?>
</table>
<p align="center">
<input type="reset" value="重置">
<input type="submit" value="提交">
</p>
</form>
</body>
</head>
</html>
<pre>
<?php
/*
* 插入数据过程我就不写了(因为我没有你的数据库结构),只写出提交后数据结果吧
* $_POST数组自己提取数据吧,日期为 $_POST['checkbox'] 取出某个人的日期数组
* 写了这么多,不为别的,只为200分,我希望你懂的
* Contact Me Please view my Bai Username
* Good Luck to you!
*/
if(isset($_POST)){
print_r($_POST);
}
?>
</pre>
⑷ PHP中点击form里的<input type="reset" value="重置" /> 这个按钮会发生什么
会重置!不是清空!如果其他input的value有默认值得话!就会重置成默认值
⑸ PHP中,怎么将某个动作代码添加到某个按钮或图片或文字的各种事件中。
你所说的动作全部都是前端的事件,需要用到的是js,php是服务端脚本.
1.点击按钮返回$txt值,
<button onclick="alert('"+<?php echo $txt; ?>+"')">Click me</button>
2.鼠标经过----onmouseover
3.鼠标离开----onmouseout
4.鼠标点击----onclick
5.改变内容----onpropertychange(IE only),onchange
6.按键----------onkeydown
⑹ (100分)[php]写几个你熟悉的数组处理函数!
这种问题还用提问吗?直接看官方的用户手册,一册在手,问题全有。
array_change_key_case — 返回字符串键名全为小写或大写的数组
array_chunk — 将一个数组分割成多个
array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
array_count_values — 统计数组中所有的值出现的次数
array_diff_assoc — 带索引检查计算数组的差集
array_diff_key — 使用键名比较计算数组的差集
array_diff_uassoc — 用用户提供的回调函数做索引检查来计算数组的差集
array_diff_ukey — 用回调函数对键名比较计算数组的差集
array_diff — 计算数组的差集
array_fill_keys — 使用指定的键和值填充数组
array_fill — 用给定的值填充数组
array_filter — 用回调函数过滤数组中的单元
array_flip — 交换数组中的键和值
array_intersect_assoc — 带索引检查计算数组的交集
array_intersect_key — 使用键名比较计算数组的交集
array_intersect_uassoc — 带索引检查计算数组的交集,用回调函数比较索引
array_intersect_ukey — 用回调函数比较键名来计算数组的交集
array_intersect — 计算数组的交集
array_key_exists — 检查给定的键名或索引是否存在于数组中
array_keys — 返回数组中所有的键名
array_map — 将回调函数作用到给定数组的单元上
array_merge_recursive — 递归地合并一个或多个数组
array_merge — 合并一个或多个数组
array_multisort — 对多个数组或多维数组进行排序
array_pad — 用值将数组填补到指定长度
array_pop — 将数组最后一个单元弹出(出栈)
array_proct — 计算数组中所有值的乘积
array_push — 将一个或多个单元压入数组的末尾(入栈)
array_rand — 从数组中随机取出一个或多个单元
array_rece — 用回调函数迭代地将数组简化为单一的值
array_replace_recursive — 使用传递的数组递归替换第一个数组的元素
array_replace — 使用传递的数组替换第一个数组的元素
array_reverse — 返回一个单元顺序相反的数组
array_search — 在数组中搜索给定的值,如果成功则返回相应的键名
array_shift — 将数组开头的单元移出数组
array_slice — 从数组中取出一段
array_splice — 把数组中的一部分去掉并用其它值取代
array_sum — 计算数组中所有值的和
array_udiff_assoc — 带索引检查计算数组的差集,用回调函数比较数据
array_udiff_uassoc — 带索引检查计算数组的差集,用回调函数比较数据和索引
array_udiff — 用回调函数比较数据来计算数组的差集
array_uintersect_assoc — 带索引检查计算数组的交集,用回调函数比较数据
array_uintersect_uassoc — 带索引检查计算数组的交集,用回调函数比较数据和索引
array_uintersect — 计算数组的交集,用回调函数比较数据
array_unique — 移除数组中重复的值
array_unshift — 在数组开头插入一个或多个单元
array_values — 返回数组中所有的值
array_walk_recursive — 对数组中的每个成员递归地应用用户函数
array_walk — 对数组中的每个成员应用用户函数
array — 新建一个数组
arsort — 对数组进行逆向排序并保持索引关系
asort — 对数组进行排序并保持索引关系
compact — 建立一个数组,包括变量名和它们的值
count — 计算数组中的单元数目或对象中的属性个数
current — 返回数组中的当前单元
each — 返回数组中当前的键/值对并将数组指针向前移动一步
end — 将数组的内部指针指向最后一个单元
extract — 从数组中将变量导入到当前的符号表
in_array — 检查数组中是否存在某个值
key — 从关联数组中取得键名
krsort — 对数组按照键名逆向排序
ksort — 对数组按照键名排序
list — 把数组中的值赋给一些变量
natcasesort — 用“自然排序”算法对数组进行不区分大小写字母的排序
natsort — 用“自然排序”算法对数组排序
next — 将数组中的内部指针向前移动一位
pos — current 的别名
prev — 将数组的内部指针倒回一位
range — 建立一个包含指定范围单元的数组
reset — 将数组的内部指针指向第一个单元
rsort — 对数组逆向排序
shuffle — 将数组打乱
sizeof — count 的别名
sort — 对数组排序
uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
uksort — 使用用户自定义的比较函数对数组中的键名进行排序
usort — 使用用户自定义的比较函数对数组中的值进行排序
⑺ php reset() key() next 是什么意思。我查的手册貌似不对。
你说的这3个函数都是操作数组内部指针的函数
关于指针,不懂的话可以网络一下C语言 指针
reset()是把数组的内部指针指向第一个元素,并且返回其值
key()是返回数组内部指针当前所在位置的键名
next()是把指针移动到数组的下一个元素,并返回其值
⑻ smart里调用了一个数组后,怎么像php里的用reset();
参考答案: 人情似纸张张薄,世事如棋局局新。易涨易退山溪水,易反易复小人心。
⑼ 我的帝国后台怎么没有resetuser.php
resetuser.php是帝国重置密码的脚本文件吧? 这个在帝国cms里是不会提供的. 你需要自己上传该文件到网站上去. 这个文件比较危险, 建议你使用之后立刻删除. 避免不必要的隐患. 可以参考帝国网站的帖子:http://bbs.phome.net/showthread-31-197874-0.html
⑽ PHP怎么返回复选框的结果呢
复选框的name值必须一样,而你的每个name值不一样就已经错了。复选框的值是一个数组,因为是数组,name的值必须加[],这样就可以把每个value的值放进$_GET['oxuan']的数组里。要获取数组的值就简单了print_r打印一下就可以了。
PHP获取复选框里的值:
<form action="" method="get">
<input type="checkbox" name="oxuan[]" value="1">
学习
<input type="checkbox" name="oxuan[]" value="2">
DOTA
<input type="checkbox" name="oxuan[]" value="4">
篮球
<input type="checkbox" name="oxuan[]" value="8">
足球
<input type="submit" name="submit" value="提交">
<input type="reset" name="submit2" value="Reset">
</form>
<?php
$oxuan=$_GET["oxuan"];//$oxuan的结果是数组
print_r($oxuan);
?>