当前位置:  编程技术>php
本页文章导读:
    ▪php ini_set函数的用法      在php编程中,ini_set函数是设置选项中的值,在执行函数后生效,脚本结束时,这个设置也失效。 不是所有的选项都能被改函数设置的。 可以设置php.ini中的选项值比如,display_error选项关闭了.........
    ▪命令行下运行PHP脚本的实例参考      本节主要内容: 命令行运行php脚本 查看php的版本信息: #php -v  显示PHP的版本 有如下的php文件,hello.php:   代码示例: <?php echo "Hello from the CLI"; ?> 在命令行提示符下运行此程序(调用.........
    ▪php对象的序列化与反序列化 PHP对象存储与传输      本节内容: php对象的序列化与反序列化 将对象及其方法传递到想使用对象的页面,简单可行的方法是这样: 将对象序列化后存储起来或直接传输给需要的页面。 另外一种办法:将对象注册.........

[1]php ini_set函数的用法
    来源: 互联网  发布时间: 2013-12-24

在php编程中,ini_set函数是设置选项中的值,在执行函数后生效,脚本结束时,这个设置也失效。
不是所有的选项都能被改函数设置的。

可以设置php.ini中的选项值比如,display_error选项关闭了,但是要显示程序中的错误信息,方便调试程序,可以使用PHP ini_set函数:
ini_set(”display_errors”, “On”);

在这个页面的程序都会显示错误信息了,而且,还可以使用error_reporting来设置显示的错误信息级别。

如果需要增加脚本执行时间,那么可以设置:
ini_set(”max_execution_time”, “180″);

脚本执行时间就由默认的30秒变为180秒,当然,也可以使用set_time_limit()来设置。

其实,把PHP ini_set函数和ini_get结合使的话,非常好。
比如,想在配置文件中,添加自己的包含文件路径,但是却没有权限更改php.ini,可以结合两个函数:
 

ini_set(’include_path’,ini_get(’include_path’).’:/your_include_dir:’);
/ ini_set更改php.ini配置功能

利用ini_set可以快速的修改php.ini配置设置哦,无需打开php.ini即可。

例子:
 

代码示例:
<?php  
   //ini_set具有更改php.ini设置的功能。
   //此函数接收两个参数:需要调整的配置变量名,以及变量的新值。
   //例如,在某脚本出现时增加最大执行时间(maximum execution time):
   $old_max_execution_time = ini_set('max_execution_time', 120);
   echo "old timeout is $old_max_execution_time <br />";
   $max_execution_time = ini_get('max_execution_time');
   echo "new timeout is $max_execution_time <br />";
  
   echo 'function sets supported in this install are:<br />';
  $extensions = get_loaded_extensions();
  foreach ($extensions as $each_ext)
  {
    echo "$each_ext <br />";
    echo '<ul>';
    $ext_funcs = get_extension_funcs($each_ext);
    foreach($ext_funcs as $func)
    {
       echo "<li> $func </li>";
    }
    echo '</ul>';
  }
?>

    
[2]命令行下运行PHP脚本的实例参考
    来源: 互联网  发布时间: 2013-12-24

本节主要内容:
命令行运行php脚本

查看php的版本信息:
#php -v  显示PHP的版本

有如下的php文件,hello.php:
 

代码示例:
<?php
echo "Hello from the CLI";
?>

在命令行提示符下运行此程序(调用CLI可执行文件并提供脚本的文件名):
#php phphello.php
输出Hello from the CLI

使用标准的输入和输出

在PHP脚本中使用这三个常量,以接受用户的输入,或显示处理和计算的结果。

例1,
 

代码示例:

<?php
// ask for input
fwrite(STDOUT, "Enter your name: ");

// get input
$name = trim(fgets(STDIN));

// write input back
fwrite(STDOUT, "Hello, $name!");
?>
Look what happens when you run it:
shell> php hello.php
Enter your name: Joe
Hello, Joe!

以上脚本中,fwrite()函数,首先会向标准的输出设备写一条消息,询问用户的姓名。
然后,它会把从标准输入设备获得的用户输入信息读取到一个PHP变量里,并它把合并成为一个字符串。
然后就用fwrite()把这个字符串打印输出到标准的输出设备上。

使用命令行自变量
在命令行里输入程序参数来更改其运行方式是很常见的做法。你也可以对CLI程序这样做。
PHP CLI带有两个特殊的变量,专门用来达到这个目的:
一个是$argv变量,它通过命令行把传递给PHP脚本的参数保存为单独的数组元素;
另一个是$argc变量,它用来保存$argv数组里元素的个数。

用PHP脚本编写一段读取$argv并处理它所含参数的代码是很简单的。
试试例2中的脚本,观察下其工作方式:
 

代码示例:

<?php
print_r($argv);
?>

Run this script by passing it some arbitrary values, and check the output:

shell> php phptest.php chocolate 276 "killer tie, dude!"
Array
( [0] => test.php
[1] => chocolate
[2] => 276
[3] => killer tie, dude!
)

从输出结果可以看到:
传递给test.php的值会自动地作为数组元素出现在$argv里。
注意,$argvis的第一个自变量总是脚本自己的名称。

例3,一个稍复杂些的例子:
 

代码示例:

<?php
// check for all required arguments
// first argument is always name of script!
if ($argc != 4) {
die("Usage: book.php <check-in-date> <num-nights> <room-type> ");
}

// remove first argument
array_shift($argv);

// get and use remaining arguments
$checkin = $argv[0];
$nights = $argv[1];
$type = $argv[2];
echo "You have requested a $type room for $nights nights, checking in on $checkin. Thank you for your order! ";
?>

调用示例:
 

代码示例:
shell> php phpbook.php 21/05/2005 7 single
You have requested a single room for 7 nights, checking in on 21/05/2005. Thank you for your order!

以上命令行脚本中,首先,检查$argc,以确保自变量的数量符合要求。
然后会从$argv里提取出每一个自变量,把它们打印输出到标准的输出设备上。


    
[3]php对象的序列化与反序列化 PHP对象存储与传输
    来源: 互联网  发布时间: 2013-12-24

本节内容:
php对象的序列化与反序列化

将对象及其方法传递到想使用对象的页面,简单可行的方法是这样:
将对象序列化后存储起来或直接传输给需要的页面。

另外一种办法:将对象注册为 session 变量。

一,序列化对象
对象序列化,就是将对象转换成可以存储的字节流。

当需要把一个对象在网络中传输时或者要把对象写入文件或是数据库时,就需要将对象进行序列化。
序列化完整过程包括两个步骤:一个是序列化,就是把对象转化为二进制的字符串,serialize() 函数用于序列化一个对象;
另一个是反序列化,就是把对象被序列转化的二进制字符串再转化为对象,unserialize() 函数来反序列化一个被序列化的对象。

如此,整个过程下来,对象内的类型结构及数据都是完整的。

语法:
string serialize( mixed value )mixed unserialize( string str [, string callback] )

例子:
 

代码示例:

<?php
class Person {
private $name;
private $age;
function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}

function say() {
echo "我的名字叫:".$this->name."<br />";
echo " 我的年龄是:".$this->age;
}}

$p1 = new Person("张三", 20);
$p1_string = serialize($p1);//将对象序列化后写入文件
$fh = fopen("p1.text", "w");
fwrite($fh, $p1_string);
fclose($fh);
?>

打开 p1.text 文件,输入内容:
O:6:"Person":2:{s:12:" Person name";s:4:"张三";s:11:" Person age";i:20;}
但通常不去直接解析上述序列化生成的字符。

二,反序列化:
 

代码示例:

<?php
class Person {
private $name;
private $age;
function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
function say() {
echo "我的名字叫:".$this->name."<br />";
echo " 我的年龄是:".$this->age;
}}

$p2 = unserialize(file_get_contents("p1.text"));
$p2 -> say();
?>
 

输出结果:
我的名字叫:张三我的年龄是:20
提示由于序列化对象不能序列化其方法,所以在 unserialize 时,当前文件必须包含对应的类或 require 对应的类文件。

序列化只能用于有限用户的情况下,因为需要为每个用户单独存储或写入文件,且保证文件名不能重复。
在用户不能正常退出浏览器的情况下,不能保证文件被删除。对象注册为 session 变量。
当用户数量很多时,可以考虑用 session 来保存对象。

有关session的更多信息,请参见文章:
php中session的简单例子
php session操作类(附实例)
php session函数集
php中session过期设置的方法详解
php中session的应用举例
php会话技术之Session用法举例
php注销session信息
php5中Cookie与Session用法

例子:
 

代码示例:

<?php
session_start();
class Person {
private $name;
private $age;
function __construct($name, $age) {
$this->name = $name;
$this->age = $age; }
function say() {
echo "我的名字叫:".$this->name."<br />";
echo " 我的年龄是:".$this->age;
}}

$_SESSION["p1"] = new Person("张三", 20);
?>

读取 session :
 

代码示例:

<?php
session_start();
class Person {
private $name;
private $age;
function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}

function say() {
echo "我的名字叫:".$this->name."<br />";
echo " 我的年龄是:".$this->age;
}}
$_SESSION["p1"] -> say();
?>
 

输出结果:
我的名字叫:张三我的年龄是:20
与序列化一样,注册对象为 session 变量时并不能保存其方法。
因此,在读取 session 变量时,当前文件必须包含对应的类或者 require 对应的类文件。


    
最新技术文章:
▪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