json Cannot use object of type stdClass as array
[ 2013-01-26 16:16:03 | 作者: admin ]
json_decode(Cannot use object of type stdClass as array)
最近用 php 的 array 處理下述的程式碼,
$author = 'Mary';
$test[$author] = array('message'=>'測試', 'time'=> 1237175074);
$test2 = json_decode(json_encode($test));
print_r($test2[$author]);
一直得到下述的錯誤訊息
Cannot use object of type stdClass as array
這個程式碼,只要第三行加個 true,就可以了。
$author = 'Mary';
$test[$author] = array('message'=>'測試', 'time'=> 1237175074);
...
阅读全文…
最近用 php 的 array 處理下述的程式碼,
$author = 'Mary';
$test[$author] = array('message'=>'測試', 'time'=> 1237175074);
$test2 = json_decode(json_encode($test));
print_r($test2[$author]);
一直得到下述的錯誤訊息
Cannot use object of type stdClass as array
這個程式碼,只要第三行加個 true,就可以了。
$author = 'Mary';
$test[$author] = array('message'=>'測試', 'time'=> 1237175074);
...
阅读全文…
php中使用mb_strlen解决中文字符数,以及中文截取乱码问题
[ 2012-12-13 20:14:15 | 作者: admin ]
p.s. 使用mb_strlen函数必须指定编码
在长度检查方面,数据库使用的是varchar,长度是按字符个数算的,比如“abcdef”算6个字符,“一二三四五六”也算六个字符。而php的strlen方法算出并不一样,strlen("abcdef")是6,而strlen("一二三四五六")是18。这样检查起来就麻烦了。
php处理中文字符数,可以用mb_strlen() ,具有编码无关性,看下面的演示:
mb_strlen('abcdef','utf-8') == 6
mb_strlen('一二三四五六','utf-8') ==6
另外中文的截取也需要mb_substr()也是编码无关性,看演示
<?php
echo mb_substr('曾经年少爱追梦一心只想往前飞', 0, 7, 'utf-8');
...
阅读全文…
在长度检查方面,数据库使用的是varchar,长度是按字符个数算的,比如“abcdef”算6个字符,“一二三四五六”也算六个字符。而php的strlen方法算出并不一样,strlen("abcdef")是6,而strlen("一二三四五六")是18。这样检查起来就麻烦了。
php处理中文字符数,可以用mb_strlen() ,具有编码无关性,看下面的演示:
mb_strlen('abcdef','utf-8') == 6
mb_strlen('一二三四五六','utf-8') ==6
另外中文的截取也需要mb_substr()也是编码无关性,看演示
<?php
echo mb_substr('曾经年少爱追梦一心只想往前飞', 0, 7, 'utf-8');
...
阅读全文…
PHP n个不重复的随机数生成代码
[ 2012-12-13 16:54:13 | 作者: admin ]
p.s. 建议用mt_rand替换rand函数
php取一个随机数的方法
php取若干不重复的随机数的方法
方法一:
阅读全文…
php取一个随机数的方法
srand((double)microtime()*1000000); //给一个种子
$rand_number= rand(0,100); //取一个 0-100 之间的随机数
$rand_number= rand(0,100); //取一个 0-100 之间的随机数
php取若干不重复的随机数的方法
方法一:
<?php
//range 是将1到100 列成一个数组
$numbers = range (1,100);
//shuffle 将数组顺序随即打乱
shuffle ($numbers);
//array_slice 取该数组中的某一段
$no=6;
$result = array_slice($numbers,0,$no);
for ($i=0;$i<$no;$i++){
...//range 是将1到100 列成一个数组
$numbers = range (1,100);
//shuffle 将数组顺序随即打乱
shuffle ($numbers);
//array_slice 取该数组中的某一段
$no=6;
$result = array_slice($numbers,0,$no);
for ($i=0;$i<$no;$i++){
阅读全文…
php 数组中随机选取5个
[ 2012-12-13 15:56:26 | 作者: admin ]
随机选取数组元素。
//传入参数。1-20的一个数组。 选取5 个随机数
print_r(randges( $arrNews ,5));
print_r(randges(range(1,20),5));
function randges($numbers,$no){
//判断数组长度是否大于所取值的长度
if(count($numbers)<$no){echo '你真会开玩笑……';return false;}
//得到随机选取元素的长度
$numbers ;
//shuffle 将数组顺序随即打乱
shuffle ($numbers);
//产生数组长度...
阅读全文…
//传入参数。1-20的一个数组。 选取5 个随机数
print_r(randges( $arrNews ,5));
print_r(randges(range(1,20),5));
function randges($numbers,$no){
//判断数组长度是否大于所取值的长度
if(count($numbers)<$no){echo '你真会开玩笑……';return false;}
//得到随机选取元素的长度
$numbers ;
//shuffle 将数组顺序随即打乱
shuffle ($numbers);
//产生数组长度
阅读全文…
windows下使用PHP实现定时执行脚本
[ 2012-12-13 11:20:40 | 作者: admin ]
一直以来,使用PHP定时运行脚本都是让大家头痛的问题,但是我们确实可以利用windows的计划任务来定时调用PHP脚本,当然这还要感谢PHP.exe。下面,站长将向大家介绍,如何来实现。
目标:根据系统时间定时执行PHP脚本,不需要人工运行(这里以定时新建一个文本文件并写入内容为例)
解决步骤:
1、建立PHP脚本,如下:
<meta charset='utf-8'>
<?php
file_put_contents('D:\www\root\1.txt','ok');
?>
大家,可以看见,我们在这里对将要创建的文件路径使用了绝对路径,这是因为我们将要通过windows命令行来调用此脚本,由于cmd.exe与我们的web根目录是不一样的,而php的文件目录函数只能在web根目录范围内进行操作,所以我们需要使用绝对路径,否则代码将正确执行但是文件将不会被创建。
2、新建.bat文件,代码如下:
"D:\Program ...
阅读全文…
目标:根据系统时间定时执行PHP脚本,不需要人工运行(这里以定时新建一个文本文件并写入内容为例)
解决步骤:
1、建立PHP脚本,如下:
<meta charset='utf-8'>
<?php
file_put_contents('D:\www\root\1.txt','ok');
?>
大家,可以看见,我们在这里对将要创建的文件路径使用了绝对路径,这是因为我们将要通过windows命令行来调用此脚本,由于cmd.exe与我们的web根目录是不一样的,而php的文件目录函数只能在web根目录范围内进行操作,所以我们需要使用绝对路径,否则代码将正确执行但是文件将不会被创建。
2、新建.bat文件,代码如下:
"D:\Program ...
阅读全文…
php模拟get和post的几种方法(fsockopen,curl 等)
[ 2012-12-13 11:14:13 | 作者: admin ]
使用 file_get_contents
使用curl
阅读全文…
$re = file_get_contents($url);
print_r($re);
print_r($re);
使用curl
$ch = curl_init("http://www.xg98.com/") ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ;
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ;
$output = curl_exec($ch) ;
$fh = fopen("out.html", 'w') ;
fwrite($fh, $output) ;
...curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ;
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ;
$output = curl_exec($ch) ;
$fh = fopen("out.html", 'w') ;
fwrite($fh, $output) ;
阅读全文…
PHP乱码问题,UTF-8(乱码)
[ 2012-12-11 15:56:23 | 作者: admin ]
一.HTML页面转UTF-8编码问题
1.在head后,title前加入一行:
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
顺序不能错,一定要在
显示的标题有可能是乱码!
2.html文件编码问题:
点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8,
如果是ANSI,需要将编码改成:UTF-8。
3.HTML文件头BOM问题:
将文件从其他的编码转换成UTF-8编码时,有时候会在文件的最开始加上一个BOM标签,
在个BOM标签可能会导致浏览器在显示中文的时候出现乱码。
删除这个BOM标签的方法:
1.可以用Dreamweaver打开文件,并重新保存,即可以去除BOM标签!
2.可以用EditPlus打开文件,并在菜单“首选项”...
阅读全文…
1.在head后,title前加入一行:
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
顺序不能错,一定要在
显示的标题有可能是乱码!
2.html文件编码问题:
点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8,
如果是ANSI,需要将编码改成:UTF-8。
3.HTML文件头BOM问题:
将文件从其他的编码转换成UTF-8编码时,有时候会在文件的最开始加上一个BOM标签,
在个BOM标签可能会导致浏览器在显示中文的时候出现乱码。
删除这个BOM标签的方法:
1.可以用Dreamweaver打开文件,并重新保存,即可以去除BOM标签!
2.可以用EditPlus打开文件,并在菜单“首选项”...
阅读全文…
PHP unicode解码和解码
[ 2012-12-10 10:09:24 | 作者: admin ]
UNICODE编码在PHP中使用UCS-2编码,之前还真是没有发现,一直还以为是UTF-8就行了。贴出代码:
//将内容进行UNICODE编码,编码后的内容格式:YOKA\u738b (原始:YOKA王)
function unicode_encode($name)
{
$name = iconv('UTF-8', 'UCS-2', $name);
$len = strlen($name);
$str = '';
for ($i = 0; $i < $len - 1; $i = $i + 2)
{
$c = $name[$i];
$c2 = $name[$i + 1];
if (ord($c) > 0)
{ // 两个字节的文字
$str .= '\u'.base_convert(ord($c), 10, 16).base_convert(ord($c2), 10, 16);
...
阅读全文…
//将内容进行UNICODE编码,编码后的内容格式:YOKA\u738b (原始:YOKA王)
function unicode_encode($name)
{
$name = iconv('UTF-8', 'UCS-2', $name);
$len = strlen($name);
$str = '';
for ($i = 0; $i < $len - 1; $i = $i + 2)
{
$c = $name[$i];
$c2 = $name[$i + 1];
if (ord($c) > 0)
{ // 两个字节的文字
$str .= '\u'.base_convert(ord($c), 10, 16).base_convert(ord($c2), 10, 16);
...
阅读全文…