当前位置:  编程技术>php
本页文章导读:
    ▪『PHP』Invalid argument supplied for foreach 解决办法       1 QUOTE: 2 foreach($extcredits as $id => $credit) 3 { 4 if($credit['ratio']) 5 { 6 $exchcredits[$id] = $credit; 7 } 8 } 9 改为10 11 QUOTE:12 if(is_array($extcredits)) //add13 { .........
    ▪php array_merge 和 两数组相加区别      PHP中两个数组合并可以使用+或者array_merge,但之间还是有区别的,而且这些区别如果了解不清楚项目中会要命的! 主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者.........
    ▪PHP开发自学(一)开发环境      一、软件下载Web服务器Apache:httpd-2.2.22-win32-x86-openssl-0.9.8t;php应用程序:php-5.3.22-Win32-VC9-x86.zip;Mysql数据库:mysql-installer-community-5.6.10.1.msi;IDE开发工具:eclipse for php (http://archive.eclipse.org/tech.........

[1]『PHP』Invalid argument supplied for foreach 解决办法
    来源:    发布时间: 2013-11-07
1 QUOTE:
2 foreach($extcredits as $id => $credit)
3 {
4 if($credit['ratio'])
5 {
6 $exchcredits[$id] = $credit;
7 }
8 }
9 改为
10
11 QUOTE:
12 if(is_array($extcredits)) //add
13 {
14 foreach($extcredits as $id => $credit)
15 {
16 if($credit['ratio'])
17 {
18 $exchcredits[$id] = $credit;
19 }
20 }
21 } //add

 

本文链接


    
[2]php array_merge 和 两数组相加区别
    来源:    发布时间: 2013-11-07

PHP中两个数组合并可以使用+或者array_merge,但之间还是有区别的,而且这些区别如果了解不清楚项目中会要命的!

 

主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意 

1)键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖) 

2)键名为字符时,+仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值 

需要注意的是数组键形式 '数字' 等价于 数字

$a = array('a','b');
$b = array('c','d');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));
//输出内容
array(2) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
}
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "d"
}

 

$a = array(0 => 'a', 1 => 'b');
$b = array(0 => 'c', 1 => 'b');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));

//输出

array(2) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
}
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "b"
}

 

$a = array('a', 'b');
$b = array('0' => 'c', 1 => 'b');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));

//输出

array(2) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
}
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "b"
}

 

$a = array(0 => 'a', 1 => 'b');
$b = array('0' => 'c', '1' => 'b');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));

//输出

array(2) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
}
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "b"
}

 

本文链接


    
[3]PHP开发自学(一)开发环境
    来源:    发布时间: 2013-11-07

一、软件下载

  • Web服务器Apache:httpd-2.2.22-win32-x86-openssl-0.9.8t;
  • php应用程序:php-5.3.22-Win32-VC9-x86.zip;
  • Mysql数据库:mysql-installer-community-5.6.10.1.msi;
  • IDE开发工具:eclipse for php (http://archive.eclipse.org/technology/epp/downloads/release/helios/R/eclipse-php-helios-win32.zip)官网提供的最高版本为helios;
  • 为使用eclipse安装JDK:jdk-6u43-windows-i586.exe;
  • 另再安装Mysql数据库需要.net framework4.0,微软官方现在。
  • 以上为开发中需要的软件,都可以从官方网站上下载到,另本机的环境为Windows7 旗舰版。

     

    二、软件安装

    其实已经有很多软件提供了集成式的安装,一次性安装apache+php+mysql等,例如XAMPP之类的省去了配置上的繁琐,不过对于初次使用PHP,我还是踏实的逐个安装一次吧。(据以往的经验一定会撞的满头包)。

      1. 安装apache的过程很简单,都是设置配置信息最终也可在 “安装目录\Apache2.2\conf\httpd.conf” 里修改,需要注意的:

        1)在Server Information这一步,如果选择的是"only for the Current User",那么apache将不会被注册成服务,之后可通过命令行的方式主动注册,

           可以在Apache安装目录的bin子目录下,使用如下命令将Apache安装为Windows NT服务:

         httpd -k install -n "服务名"

        2)windows7 安装apache提示(<OS5>拒绝访问. : Failed to open the WinNT service manager)。

           解决办法:软件安装时与windows7的“用户账户控制”(UAC)冲突,只要先关 闭UAC(控制面板--用户账户和家庭里面有“更改用户账户控制设置”,改

           成从不通知,完成后重启)再安装就没问题了,安装完后可以再修改回来。

      2. 安装php,将压缩包解压到一个目录即可。

      3. 安装Mysql,数据库的安装带来的不小的麻烦耗费了很多时间去查原因,最终还是莫名其妙的安装成功了,待遇到仙人指点后再更新本文吧。

        1)安装界面有了变化,毕竟被Oracel收购了,整体的配置比之前选项少了,更个性化的配置就要修改配置文件了my.ini;

       2)安装到第三部 Setup Type 时,头疼的事来了,如果默认安装就会安装到C盘下,由于不想把数据库放在系统盘中,所以一般都会选择其他盘符,所以在D盘两个

          不同的位置安装软件和数据文件,导致最后一个步安装失败,查看了Mysql服务已经安装但是没有启动,估计最后一布失败的原因是服务问题,手动启动就出现了

                 传说中的”1067进程意外终止“,至此就不停搜索网上的各种办法也没有解决。

         以上是当时安装的目录,大致的问题应该就是配置文件或安装过程默认的配置与自定义安装路径不匹配,单纯考虑这个问题应该是Mysql的这个安装BUG,

           尝试了网上说的各种办法均无效,我又安装卸载了多次,终于测试成功,就是软件安装目录和Data Path目录用同一个目录(或其子目录),正常安装功,  

                为什么还不知道,等待仙人指点了。

         3)开发的IDE,Eclipse就直接解压即可使用。

    三、环境配置

      1. 为Apache配置php的环境,使用Module方式加载的,在httpd.conf配置文件中找到一组”LoadModule“的配置,在其后面添加:

        LoadModule php5_module "D:/Study/php/software/PHP/php5apache2_2.dll"

        PHPIniDir "D:/Study/php/software/PHP"

        AddType application/x-httpd-php .php .html .htm

             搜索ServerName属性,删掉#注释,并修改成本机的IP地址;

        如果想修改默认的web路径,搜索”DocumentRoot“和其下方的”Directory“,将路径修改成自定义路径;

       2. 配置PHP环境,在安装PHP的根目录下找到文件”php.ini-development“,复制一份并修改成php.ini,搜索并修改:

              extension_dir = "D:\Study\php\software\PHP\ext"

              取消功能库前面的注释,需要用哪个就取消掉前面的注释

              extension=php_curl.dll

              extension=php_gd2.dll

              extension=php_mbstring.dll

              extension=php_mysql.dll

              extension=php_xmlrpc.dll

              最后可以设置一个时区 date.timezone = Asia/Shanghai

       3. 测试环境,在Apache配置的web目录中创建一个index.php文件,并添加代码

    <?php
    phpinfo();
    ?>

           在浏览器中输入http://localhost:8080/index.php,如果显示如下即配置成功。

       另,在创建一个文件mysql.php放到同目录下,添加入代码测试数据库链接,

    <?php
    // 连接、选择数据库
    $link = mysql_connect('localhost', 'root', 'volare')
    or die('Could not connect: ' . mysql_error());
    echo 'Connected successfully';
    mysql_select_db('sakila') or die('Could not select database');

    // 执行 SQL 查询
    $query = 'SELECT * FROM address';
    $result = mysql_query($query) or die('Query failed: ' . mysql_error());

    // 以 HTML 打印查询结果
    echo "<table>\n";
    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($line as $col_value) {
    echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
    }
    echo "</table>\n";

    // 释放结果集
    mysql_free_result($result);

    // 关闭连接
    mysql_close($link);
    ?>

            

        
    最新技术文章:
    ▪PHP函数microtime()时间戳的定义与用法
    ▪PHP单一入口之apache配置内容
    ▪PHP数组排序方法总结(收藏)
    ▪php数组排序方法大全(脚本学堂整理奉献)
    ▪php数组排序的几个函数(附实例)
    ▪php二维数组排序(实例)
    ▪php根据键值对二维数组排序的小例子
    ▪php验证码(附截图)
    ▪php数组长度的获取方法(三个实例)
    ▪php获取数组长度的方法举例
    ▪判断php数组维度(php数组长度)的方法
    ▪php获取图片的exif信息的示例代码
    ▪PHP 数组key长度对性能的影响实例分析
    ▪php函数指定默认值的方法示例
    ▪php提交表单到当前页面、提交表单后页面重定...
    ▪php四舍五入的三种实现方法
    ▪php获得数组长度(元素个数)的方法
    ▪php日期函数的简单示例代码
    ▪php数学函数的简单示例代码
    ▪php字符串函数的简单示例代码
    ▪php文件下载代码(多浏览器兼容、支持中文文...
    ▪php实现文件下载、支持中文文件名的示例代码...
    ▪php文件下载(防止中文文件名乱码)的示例代码
    ▪解决PHP文件下载时中文文件名乱码的问题
    ▪php小数点后取两位的三种实现方法 iis7站长之家
    ▪php小数点后取两位的三种实现方法
    ▪php Redis 队列服务的简单示例
    ▪PHP导出excel时数字变为科学计数的解决方法
    ▪PHP数组根据值获取Key的简单示例
    ▪php数组去重的函数代码示例
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3