在php中如何判断一个字符串中包含别一个字符串?
可以用strpos函数来判断一个字符串是否在别一个字符串中出现。代码这样写:
if (strpos($a,'are') !== false) {
echo 'true';
}
注意用!== false,因为如果一个字符串出现在别一个字符串的开始位置,返回值为0,0做为一个偏移量返回,它是用效的,而真正没找到会返回boolean false,所以我们不明简单的用 !strpos($a, 'are').同时还要注意strpos区分大小写,如需进行对大小写不敏感的搜索,用 stripos() 函数。
......
如何用php正确的定义"Content-type"为JSON
从网上搜索,会发现有两种不同的方式来定义已加载PHP文件的Content-type为JSON。
第一种:header('Content-type: text/json');
第二种:header('Content-type: application/json');
那个用哪一种才是最正确,最科学的呢?
application/json是在RFC4627中正式注册的JSON的MIME类型,并列在互联网媒体类型列表中。我想用第二种才是正确的。application/json的默认编码为UTF-8,我们可以在声明中改为其他类型的编码,但要保注意提交和返回的编码一致性。否则可能产生乱码,例如中文。
而text/json是被RFC定义为废弃的。
......
php删除数组中某一元素
我们从数组中删除一元素,用以用unset,删除以后数组中就不再包括这个元素,而不是把这个元素设为null.
<?php
$x = array(1,2);
unset($x[0]);
var_dump($x);
?>
output
array(1) {
[1]=>
int(2)
}
注意这样做数组的元素索引没有改变,假设从中间删除了某个索引对应的元素,会造成数组索引不连贯。
......
mysql_*(或者说mysql扩展)被弃用的原因
mysql_*是一个成熟的东西,许多网站都用这个对mysql数据库进行操作(如请求mysql_query(),mysql_connect()函数或mysql_real_escape_string()),但为什么php高版本中要将它移除呢,
这是一个典型的问题。为了说明这个问题,在技术层面详细说明为什么使用mysql_ *函数不再推荐:
一.没有后续的开发支持。
二.不是面向对象的。
这好像不是一个好的理由,为什么非要面向对象呢?
三.mysql_*不支持:
1.锁定,异步查询
2.预处理语句或参数化查询(我想这一点非常重要)
3.存储过程
4.多条语句查询
5.事物
因为它已过时,所以在未来的代码中尽量少用它们。
用更清晰,更好的错误处理和引用外部数据的方法比用一个单独的函数调用,手动处理错误的支持就显得尤为重要。
......
php的foreach工作原理
事先声明,我们讨论的不是foreach用来做什么,和如何使用它。我们要分析的是它的工作原理。而不是说怎样用他来循环数组。
很长一段时间我认为foreach循环的是数组本身。但是,许多人提到,它其实是把数组做为一个副本来操作,我也认为这是最终的结论.不过,我又对这个问题进行了重新的思考,并通过实际的测试发现,
事实上也不完全如此。
让我解释一下,从下面的例子中,我们将用一个数组看出它是如何工作的。
$array = array(1, 2, 3, 4, 5); //测试用的数组.
//case 1
foreach ($array as $item) {
echo "$item\n";
$array[] = $item;
}
print_r($array);
/* Output in loop: 1 2 3 4 5
$array after loop: 1 2 3 4 5 1 2 3 4 5 */
这清楚地表明,我们不用源数组直接工作 - 否则循环将永远持续下去,因为我们是在循环过程中不断加入新的元素到数组上。再用一个例子说明:
//case 2
foreach ($array as $key => $item) {
$array[$key + 1] = $item + 2;
echo "$item\n";
}
print_r($array);
/* Output in loop: 1 2 3 4 5
$array after loop: 1 3 4 5 6 7 */
这将进一步验证我们的结论,我们正与在循环过程中的源数组的副本打交道,否则我们将在循环过程中看到修改后的值。但...
如果我们......
近期文章
- 织梦5.7{dede:php}标签不起作用的解决办法
- php版本non-thread-safe和thread-safe的区别
- 什么是fatal flex scanner internal error--end of buffer missed
- php文件命名建议用小写
- php cookie字典
- seft和static在php中有什么不同
- 用php快速获取图片大小
- 用php的json_decode()检测json数据是否合法
- php三个等号
- unset和=null有什么不同
- php如何捕获一个警告信息
- 如何获得php数组中最后一个元素的键名?
- 在PHP中,你如何改变数组中某一元素的键名?
- php多维数组转xml
- php如何转化数组为SimpleXML对象
- php如何把数组定义为常量
- php根据数组中的值删除数组中的元素
- 计算两个日期相差多少天
- 如何捕获var_dump的输出结果保存到一个字符串中?
- 用php获取完整的URL