当前位置: 编程技术>php
本页文章导读:
▪PHP新手NOTICE错误常见解决方法
刚学习PHP,不久,一般就看看手册,和一本叫PHP和mysql web开发的。 最近在整留言板,刚才遇到个问题。 页面中,好多类似 Notice: Use of undefined constant title - assumed 'title' in D:\wamp\www\phpmysqlweb\bb.........
▪PHPExcel读取Excel文件的实现代码
涉及知识点: php对excel文件进行循环读取 php对字符进行ascii编码转化,将字符转为十进制数 php对excel日期格式读取,并进行显示转化 php对汉字乱码进行编码转化 代码如下: <?php require_once .........
▪PHP spl_autoload_register实现自动加载研究
这里通过一个实验谈谈这个函数的部分特征。 函数原型 bool spl_autoload_register ([ callback $autoload_function [, bool $throw = true [, bool $prepend = false ]]] ) 版本兼容 PHP 5 >= 5.1.2 实验过程 第一步,使用sp.........
[1]PHP新手NOTICE错误常见解决方法
来源: 互联网 发布时间: 2013-11-30
刚学习PHP,不久,一般就看看手册,和一本叫PHP和mysql web开发的。
最近在整留言板,刚才遇到个问题。
页面中,好多类似 Notice: Use of undefined constant title - assumed 'title' in D:\wamp\www\phpmysqlweb\bbs\list.php on line 17
页面很难看,很纠结啊,我用的是wamp集成包。
百度了下,看来好多朋友也有这个情况。
Notice意思是使用了没有被声明的变量,但是程序不会影响使用。难怪还是能正常运行的,就是不雅观。
解决办法有4个:
1:在上面初始化
2:打开php.ini文件
修改配置文件
error_reporting设置:
找到error_reporting=E_ALL
修改为error_reporting=E_ALL & ~E_NOTICE
3:用include把 error_reporting(E_ALL & ~E_NOTICE);写进去 //天空就是这么干的,因为是个懒人,怕打开这个那个,嘻嘻。。。。。
4:直接在文件最上面加个error_reporting(0);
准备好好搞PHP,不过遇上这个奇怪问题,还有咱有百度,神马问题,百度下,都有解决了。
新手朋友们注意了,当页面报什么错误的时候,检查代码,是否缺分号或者括号的,刚才我就犯了那些粗心问题,惭愧。
我的PHP之路注定是困难的,但是我不会放弃,一定要好好做。加油。
最近在整留言板,刚才遇到个问题。
页面中,好多类似 Notice: Use of undefined constant title - assumed 'title' in D:\wamp\www\phpmysqlweb\bbs\list.php on line 17
页面很难看,很纠结啊,我用的是wamp集成包。
百度了下,看来好多朋友也有这个情况。
Notice意思是使用了没有被声明的变量,但是程序不会影响使用。难怪还是能正常运行的,就是不雅观。
解决办法有4个:
1:在上面初始化
2:打开php.ini文件
修改配置文件
error_reporting设置:
找到error_reporting=E_ALL
修改为error_reporting=E_ALL & ~E_NOTICE
3:用include把 error_reporting(E_ALL & ~E_NOTICE);写进去 //天空就是这么干的,因为是个懒人,怕打开这个那个,嘻嘻。。。。。
4:直接在文件最上面加个error_reporting(0);
准备好好搞PHP,不过遇上这个奇怪问题,还有咱有百度,神马问题,百度下,都有解决了。
新手朋友们注意了,当页面报什么错误的时候,检查代码,是否缺分号或者括号的,刚才我就犯了那些粗心问题,惭愧。
我的PHP之路注定是困难的,但是我不会放弃,一定要好好做。加油。
[2]PHPExcel读取Excel文件的实现代码
来源: 互联网 发布时间: 2013-11-30
涉及知识点:
php对excel文件进行循环读取
php对字符进行ascii编码转化,将字符转为十进制数
php对excel日期格式读取,并进行显示转化
php对汉字乱码进行编码转化
<?php
require_once 'PHPExcel.php';
/**对excel里的日期进行格式转化*/
function GetData($val){
$jd = GregorianToJD(1, 1, 1970);
$gregorian = JDToGregorian($jd+intval($val)-25569);
return $gregorian;/**显示格式为 “月/日/年” */
}
$filePath = 'test.xlsx';
$PHPExcel = new PHPExcel();
/**默认用excel2007读取excel,若格式不对,则用之前的版本进行读取*/
$PHPReader = new PHPExcel_Reader_Excel2007();
if(!$PHPReader->canRead($filePath)){
$PHPReader = new PHPExcel_Reader_Excel5();
if(!$PHPReader->canRead($filePath)){
echo 'no Excel';
return ;
}
}
$PHPExcel = $PHPReader->load($filePath);
/**读取excel文件中的第一个工作表*/
$currentSheet = $PHPExcel->getSheet(0);
/**取得最大的列号*/
$allColumn = $currentSheet->getHighestColumn();
/**取得一共有多少行*/
$allRow = $currentSheet->getHighestRow();
/**从第二行开始输出,因为excel表中第一行为列名*/
for($currentRow = 2;$currentRow <= $allRow;$currentRow++){
/**从第A列开始输出*/
for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){
$val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();/**ord()将字符转为十进制数*/
if($currentColumn == 'A')
{
echo GetData($val)."\t";
}else{
//echo $val;
/**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将gb2312编码转为utf-8编码输出*/
echo iconv('utf-8','gb2312', $val)."\t";
}
}
echo "</br>";
}
echo "\n";
?>
php对excel文件进行循环读取
php对字符进行ascii编码转化,将字符转为十进制数
php对excel日期格式读取,并进行显示转化
php对汉字乱码进行编码转化
代码如下:
<?php
require_once 'PHPExcel.php';
/**对excel里的日期进行格式转化*/
function GetData($val){
$jd = GregorianToJD(1, 1, 1970);
$gregorian = JDToGregorian($jd+intval($val)-25569);
return $gregorian;/**显示格式为 “月/日/年” */
}
$filePath = 'test.xlsx';
$PHPExcel = new PHPExcel();
/**默认用excel2007读取excel,若格式不对,则用之前的版本进行读取*/
$PHPReader = new PHPExcel_Reader_Excel2007();
if(!$PHPReader->canRead($filePath)){
$PHPReader = new PHPExcel_Reader_Excel5();
if(!$PHPReader->canRead($filePath)){
echo 'no Excel';
return ;
}
}
$PHPExcel = $PHPReader->load($filePath);
/**读取excel文件中的第一个工作表*/
$currentSheet = $PHPExcel->getSheet(0);
/**取得最大的列号*/
$allColumn = $currentSheet->getHighestColumn();
/**取得一共有多少行*/
$allRow = $currentSheet->getHighestRow();
/**从第二行开始输出,因为excel表中第一行为列名*/
for($currentRow = 2;$currentRow <= $allRow;$currentRow++){
/**从第A列开始输出*/
for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){
$val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();/**ord()将字符转为十进制数*/
if($currentColumn == 'A')
{
echo GetData($val)."\t";
}else{
//echo $val;
/**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将gb2312编码转为utf-8编码输出*/
echo iconv('utf-8','gb2312', $val)."\t";
}
}
echo "</br>";
}
echo "\n";
?>
[3]PHP spl_autoload_register实现自动加载研究
来源: 互联网 发布时间: 2013-11-30
这里通过一个实验谈谈这个函数的部分特征。
函数原型
bool spl_autoload_register ([ callback $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )
版本兼容
PHP 5 >= 5.1.2
实验过程
第一步,使用spl_autoload_register()函数注册load()方法
<?php
function load(){
require_once 'lib.php';
}
spl_autoload_register('load');
?>
其中lib.php文件代码如下
<?php
class className{
function method(){
echo 'a method in class';
}
}
function onlyMethod(){
echo 'method only';
}
?>
说明:lib.php文件为一个className类和一个onlyMethod函数
第二步,调用自动加载类
$class = new className();
$class->method();
onlyMethod();
输出:
a method in class
method only
说明:实例化className类,并调用类method()函数,同时调用onlyMethod()方法,输出正常,没有出现错误
第三步,直接调用函数
onlyMethod();
说明:没有实例化类,直接调用lib.php文件中的onlyMethod()函数
输出:
Fatal error: Call to undefined function onlyMethod() in '...(省略路径)'
第四步,实例化className类,再直接调用
$class = new className();
onlyMethod();
输出:method only
从上面的四步实验发现,如果加载的文件包含函数,使用则一定需要实例化里面的类,否则就产生异常情况 Call to undefined function错误,具体在使用中要注意一下。
函数原型
bool spl_autoload_register ([ callback $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )
版本兼容
PHP 5 >= 5.1.2
实验过程
第一步,使用spl_autoload_register()函数注册load()方法
代码如下:
<?php
function load(){
require_once 'lib.php';
}
spl_autoload_register('load');
?>
其中lib.php文件代码如下
代码如下:
<?php
class className{
function method(){
echo 'a method in class';
}
}
function onlyMethod(){
echo 'method only';
}
?>
说明:lib.php文件为一个className类和一个onlyMethod函数
第二步,调用自动加载类
代码如下:
$class = new className();
$class->method();
onlyMethod();
输出:
a method in class
method only
说明:实例化className类,并调用类method()函数,同时调用onlyMethod()方法,输出正常,没有出现错误
第三步,直接调用函数
onlyMethod();
说明:没有实例化类,直接调用lib.php文件中的onlyMethod()函数
输出:
Fatal error: Call to undefined function onlyMethod() in '...(省略路径)'
第四步,实例化className类,再直接调用
$class = new className();
onlyMethod();
输出:method only
从上面的四步实验发现,如果加载的文件包含函数,使用则一定需要实例化里面的类,否则就产生异常情况 Call to undefined function错误,具体在使用中要注意一下。
参与资料:spl_autoload_register
最新技术文章: