当前位置:  编程技术>php
本页文章导读:
    ▪php xml 入门学习资料       起因:   今天做项目时遇到一个问题:需要动态更新主页上的图片,以示本站不是做完了就算了,是有人一直在维护。好了,需求有了,如何实现?!   我的想法如下:   图片存放.........
    ▪解决PHP在DOS命令行下却无法链接MySQL的技术笔记       正好今天朋友 xjb 也碰到了这个问题,所以写了这篇笔记,将此问题的描述以及解决记录下。 问题描述:用 web 方式, 可以链接 mysql, 但是在命令行下, 却提示:   Fatal Error: undefined function mys.........
    ▪window+nginx+php环境配置 附配置搭配说明       1,下载PHP   php下载版本比较多,其中,   vc9=vs2008编译,推荐使用IIS+php搭配模式,   vc6=vs6编译,推荐使用apache+php方式搭配,   Thread Safe,线程安全,执行时会进行线程(Thread).........

[1]php xml 入门学习资料
    来源: 互联网  发布时间: 2013-11-30
起因:
  今天做项目时遇到一个问题:需要动态更新主页上的图片,以示本站不是做完了就算了,是有人一直在维护。好了,需求有了,如何实现?!
  我的想法如下:
  图片存放位置:放在一个文件夹中;图片的类型:不能固定了,只要是图片就可以上传显示;图片名字:按原始名字有点不正规,应该重新命名一下。
  显示的位置:这就需要对图片指定相应的id,这个id是固定的,要与图片一一对应。于是就有一个记录一一对应的关系文件,可以选择csv文件,选择数据库记录,最后决定选择xml,这个东西在学校一直没学懂,我一直回避使用这东西,怕麻烦。今天算是挑战一下,花了一下午时间,终于有所收获。
学习步骤:
  明确目标: 1、理解xml的结构;2、如何动态建立xml文件;3、如何读取和修改xml文件
  一、 xml的结构是树形结构:
这个好理解。简单写一个:
代码如下:

<pictures>
<picture>
<id>1</id>
<name>pic 1</name>
</picture>
<picture>
<id>2</id>
<name>pic 2</name>
</picture>
<picture>
<id>3</id>
<name>pic 3</name>
</picture>
</pictures>

二、我使用的php创建:
    1. 定义一个DOM对象: $dom = new DomDocument('1.0');
    2. 添加子元素:$dom->appendChild($dom->createElement("pictures"))
     内存中的原型是:<pictures></pictures>
     继续往里边加子元素:*->appendChild($dom->createElement("picture"));
     继续加: **->appendChild($dom->createElement("id"));
     不加子元素了,加节点: ***->appendChild($dom->createNode("1"))
     上面的*代表上上一行的代码;这样一来就可以写成一行:
       $dom->appendChild($dom->createElement("pictures"))->appendChild($dom->createElement("picture"))
       ->appendChild($dom->createElement("id"))->appendChild($dom->createNode("1"));
     现在内存中应该是这样的:<pictures><picture><id>1</id></picture></pictures>
     显然里要求还远,很容易看懵的。
      因此一般这么写: $pictures = $dom->appendChild($dom->createElement("pictures"));
               $picture = $pictures->appendChild($dom->createElement("picture"));
               $id = $picture->appendChild($dom->createElement("id"));
                $id->appendChild($dom->createNode("1"));
      下面还可以接着创建name节点:
               $name = $picture->appendChild($dom->createElement("name"));
                   $name->appendChild($dom->createNode("pic 1"));
      接下来还要接着创建picture节点:
              $picture = $pictures->appendChild($dom->createElement("picture"));
      其实这些麻烦的事可以写个for循环来实现。
      生成xml文件:
              $dom->formatOutput = true;//设置格式化输出
              $dom->save("erhsh.xml");//保存xml文件
  三、读取xml文件。
      1、还是定义一个DOM对象;$dom->new DomDocument();
      2、加载xml文件:$dom->load("erhsh.xml");
      3、按照节点的名字取得节点集合:$dom->getElementByTagName("pictures");
      这种方法有点麻烦,参考文件:
http://www./article/25853.htm

    不过有一种我喜欢的方法:simplexml_load_file("erhsh.xml");
     此方法可以把xml文件的内容转换成对象的形式,使用"->"结和"[]"很容易去的xml的内容;
    但是在开发中还是遇到了一点问题:
    当执行:print_r($xml->pictures);时输出的是一个 SimpleXMLElement 对象,([picture] => array([0]=>array(...)[1]=>array(...)));
    再执行:print_r($xml->pictures->picture);输出的是n个分开的对象。
    执行:print_r($xml->pictures->picture[0]->id);输出的还是一个对象。这就很不理解,应该是一个字符串。 最后网上说是“迭代对象”,
    应该使用echo输出,print_r(), var_dump()输出不准确。参考地址:http://www./article/25852.htm
    当然也可以修改xml的值通过这个方法。
写的很烂,仅供本人备忘。

    
[2]解决PHP在DOS命令行下却无法链接MySQL的技术笔记
    来源: 互联网  发布时间: 2013-11-30
正好今天朋友 xjb 也碰到了这个问题,所以写了这篇笔记,将此问题的描述以及解决记录下。
问题描述:用 web 方式, 可以链接 mysql, 但是在命令行下, 却提示:
  Fatal Error: undefined function mysql_connect()
  环境: Windows 2003, PHP 5.2.0, MYSQL 5.0, Apache 2.0
  在 php.ini 中, 已经将 php_mysql.dll 的模块选项给打开了;测试的脚本也很简单,就一个 mysql_conect 函数,内容如下:
代码如下:

php.ini:
extension=php_mysql.dll
测试脚本 test.php 内容如下:
text.php
<?
if ( !mysql_connect(DBHOST, DBUSER,DBPWD) )
{
echo "连接失败!";
exit;
}
echo "连接成功!t";
?>

用 web 方式调用 http://localhost/test.php, 执行正常, 显示"连接成功".
  但用 dos command 命令行的方式调用 d:/php/php.exe test.php 却显示连接失败, 错误信息为: Fatal Error: undefined function mysql_connect()
  很显然, 在 dos command 命令行的环境下,mysql 的模块没有被调用。方法弄尽, 仍无法解决. 百思不得其解. 后来, 用写了个脚本, 看看 php 的配置, 在两个环境下有什么不同:
test.php
代码如下:

<?
echo phpinfo();
?>


仔细查看两个环境下 phpinfo() 输入的 php 配置信息,终于发现了问题所在:
Web 方式 http://localhost/test.php 方式调用时, 其 Configuration File (php.ini) Path 显示为 C:WINDOWSphp.ini。
DOS COMMAND 命令行方式 d:/php/php.exe test.php 调用时, 其 Configuration File (php.ini) Path 为 d:phpphp.ini。
  而在 c:windows 和 d:php 目录下, 都存在一个 php.ini 文件,d:php 目录下的 php.ini 没有将 extension=php_mysql.dll 模块打开.于是将 d:phpphp.ini 删除,只保留 c:windowsphp.ini,问题解决.
  总结:在 windows 下安装 php 时, 为了避免配置文件混乱,将安装目录下的 php.ini 复制到 windows 目录下之后,应该将原来安装目录下的 php.ini 文件重命名或删除,以免造成在不同环境下执行时,查找配置文件不一致的情况发生。问题发生的原因一般都是非常非常简单,但查找、排除问题的过程,却是相当的烦人。

    
[3]window+nginx+php环境配置 附配置搭配说明
    来源: 互联网  发布时间: 2013-11-30
1,下载PHP
  php下载版本比较多,其中,
  vc9=vs2008编译,推荐使用IIS+php搭配模式,
  vc6=vs6编译,推荐使用apache+php方式搭配,
  Thread Safe,线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。
  Non Thread Safe,
  再来看PHP的两种执行方式:ISAPI和FastCGI。
  ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本;
  而FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以FastCGI来执行PHP,建议选择Non Thread Safe版本。
  官方并不建议你将Non Thread Safe 应用于生产环境,所以我们选择Thread Safe 版本的PHP来使用。
2,配置php
  解压到某个目录,如c:/php345
  将php.ini-development重命名为php.ini
  fastcgi.impersonate=1 默认为0,如果使用IIS,你需要开启:cgi.fix_pathinfo=1
  cgi.force_redirect=0 默认开启,如果你使用IIS,可以将其关闭
  其次指定extension_dir目录和date.timezone目录
  extension_dir = "C:/php53iis/ext"
  date.timezone= Asia/Shanghai
  修改PHP.INI配置文件中的cgi.fix_pathinfo = 1,PHP 会修正 SCRIPT_FILENAME 为真实的文件地址,否则 PHP 将无法找到需要处理的 PHP 文件。
3,配置nginx
  解压nginx,如c:/nginx
  
  设定error.log的存放目录,将#error_log logs/error.log;的#去处,默认error.log是存放在Nginx安装目录中logs目录下。
  
  设定WEB服务器目录,类似于PHP.INI配置文件中的document_root,Nginx配置文件中的信息如下
代码如下:

location / {
root D:/PHPWeb;
index index.php index.html index.htm;
}

代码如下:

location ~ \.php$ {
root D:/PHPWeb;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME D:/PHPWeb$fastcgi_script_name;
include fastcgi_params;

注意:fastcgi_param SCRIPT_FILENAME 中的/scripts修改为之前设定的WEB目录,否则会报HTTP 404错误。

  修改PHP.INI配置文件中的cgi.fix_pathinfo = 1,PHP 会修正 SCRIPT_FILENAME 为真实的文件地址,否则 PHP 将无法找到需要处理的 PHP 文件。
4.运行
  下载RunHiddenConsole
  防火墙支援RunHiddenConsole C:/php52iis/php-cgi.exe -b 127.0.0.1:9000 -c C:/windows/php.ini

来自:http://www.cnblogs.com/ihwt/archive/2010/12/18/1909742.html

如果想比较省事的朋友可以用下面的这款软件快速部署基于Nginx的php运行环境了:
http://www./softs/33785.html

    
最新技术文章:
▪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数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


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

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

浙ICP备11055608号-3