+ -
当前位置:首页 → 问答吧 → PHP5与MySQL5web开发技术详解 相关问题和疑问(持续更新中...)

PHP5与MySQL5web开发技术详解 相关问题和疑问(持续更新中...)

时间:2007-12-11

来源:互联网

考虑到及时性,我只好在这里另外开个关于本书若干问题的新话题,望杜江老师经常来这里看下,(这可是我学PHP的第一本书啊,我很用心学习)

2007.12.11

疑问:

1.关于P110 strtotime()函数的例子 生成的结果之一 比如:now: 2007-04-13 22:0:54 为什么分钟的地方只是用零表示?难道外国人看表不看分钟?

2. 关于P111 strftime()函数的例子 得出来的结果是 Month: December Day: Monday ,请问哪里体现了所谓的“设置本地化环境为简体中文”? 还有就是今天11号也就应该是星期二,为什么程序显示出来的是“Monday”呢?

3.关于P113 HTTP验证的那个例子,代码我是照书上源代码运行的,本应弹出框那里出现的是“php登录验证”,可是却是“PHP...”(...处为中文乱码),为何会有差别呢?难道是PHP解释器不同导致的错误?(我用的是最新的PHP5.2.5)

错误:

1.关于P115 URL编码的脚本例子 运行的结果是书名:后面的图书名字没有显示... 即使我把($_GET['BoodName']);里面的BoodName改成了BookName也不能如例子中的图示一样显示出书名:后的“PHP5与MySQL5web开发技术详解 ”

2.关于P122 eregi()函数所示的例子,运行后得出的结果为:“Warning: eregi() [function.eregi]: REG_BADBR in C:\Program Files\Apache Software Foundation\Apache2.2\myweb\chapter_03\posix\3.3.5_03.php on line 3
输入错误,密码长度需在8位和10位字符之间”,即使我把字母数量改为9个,也是同样错误(所有的例子都是遵照笔者光盘里的源码运行,没有私下改动)


2007.12.15

1.今天开始看了下杜老师的项目,逐步发现问题:

a.项目中myekang里面没有upload文件夹,因此网站里的相关主题的图片无法显示,相对路径不知道在首页的哪个地方改, 因此图片显示不到(相对路径的变量找了我好久都没找到...)

b.config.inc.php中找本站路径居然用了绝对路径!这样的做法是否不太好?

[ 本帖最后由 canboy365 于 2007-12-15 07:38 编辑 ]

作者: canboy365   发布时间: 2007-12-11

问题解答如下:

1.关于P110 strtotime()函数的例子 生成的结果之一 比如:now: 2007-04-13 22:0:54 为什么分钟的地方只是用零表示?难道外国人看表不看分钟?
->请使用下面修改后的样例一试:
复制PHP内容到剪贴板
PHP代码:

<?php
//设置默认时区为中国时区
  date_default_timezone_set('PRC');
  echo "<table>";
  $dateArray = array(
                    "now", "today", "tomorrow", "yesterday",
                    "Thursday", "this Thursday", "last Thursday", 
                    "+2 hours", "-1 month", "+10 minutes", 
                    "30 seconds", "+2 years -1 month", "next week", 
                    "last month", "last year", "2 weeks ago",
                    "next Friday"
                  );
  foreach($dateArray as $mydate){
    //修改了date函数的参数
    echo "<tr><td>$mydate:</td><td>" . date('Y-m-d h:i:s', strtotime($mydate)) . "</td></tr>\n";
  }
  echo "</table>";
?>

2. 关于P111 strftime()函数的例子 得出来的结果是 Month: December Day: Monday ,请问哪里体现了所谓的“设置本地化环境为简体中文”? 还有就是今天11号也就应该是星期二,为什么程序显示出来的是“Monday”呢?
-->印刷有误
完整代码如下:
复制PHP内容到剪贴板
PHP代码:

<?php
    // 设置本地化环境为简体中文
    setlocale(LC_TIME, "chs");  //原文内容为zhs,Unix系统请更改为zh_CN,P205有详细介绍
    echo strftime("Month: %B ");
    echo strftime("Day: %A ");
?>

执行结果如下:
复制PHP内容到剪贴板
PHP代码:
Month: 十二月 Day: 星期二

3.关于P113 HTTP验证的那个例子,代码我是照书上源代码运行的,本应弹出框那里出现的是“php登录验证”,可是却是“PHP...”(...处为中文乱码),为何会有差别呢?难道是PHP解释器不同导致的错误?(我用的是最新的PHP5.2.5)
->这个问题在勘误表中存在,下面把全部代码列于下,供参考:
复制PHP内容到剪贴板
PHP代码:

<?php
    $username = 'username';
    $password = 'password';
    if (!isset($_SERVER['PHP_AUTH_USER'])) {
        Header( "WWW-Authenticate: Basic realm=\"PHP登录验证\"" );
        Header( "HTTP/1.0 401 Unauthorized" );
        echo "操作被中止 \n";
        exit;
    } else {
        if ( ( $_SERVER['PHP_AUTH_USER'] == $userame ) && ( $_SERVER['PHP_AUTH_PW'] == $password ) ){ 
            print( "您已经登录成功<br/>" );
        } else {
            print( "登录失败<br/>" );
        }
    }
?>

错误:

1.关于P115 URL编码的脚本例子 运行的结果是书名:后面的图书名字没有显示... 即使我把($_GET['BoodName']);里面的BoodName改成了BookName也不能如例子中的图示一样显示出书名:后的“PHP5与MySQL5web开发技术详解 ”
->不知道你注意到没有,用到了两个脚本例子,第一个例子链接到第二个脚本即可,以下为第二个脚本的代码:
复制PHP内容到剪贴板
PHP代码:

<?php
    $AuthorName = urldecode($_GET['author']);
    $BookName=urldecode($_GET['BookName']);
    echo "书名:{$BookName}<br />";
    echo "作者:{$AuthorName}<br />";
?>

2.关于P122 eregi()函数所示的例子,运行后得出的结果为:“Warning: eregi() [function.eregi]: REG_BADBR in C:\Program Files\Apache Software Foundation\Apache2.2\myweb\chapter_03\posix\3.3.5_03.php on line 3
输入错误,密码长度需在8位和10位字符之间”,即使我把字母数量改为9个,也是同样错误(所有的例子都是遵照笔者光盘里的源码运行,没有私下改动)
->请换用方括号表达式,代码如下:
复制PHP内容到剪贴板
PHP代码:

<?php
    $password = "abc";
    if(!eregi("^[a-z0-9]{8,10}$",$password)){
        print "输入错误,密码长度需在8位和10位字符之间";
    }

?>

作者: phpcast   发布时间: 2007-12-11

回复杜江老师的回答:

1.关于P113 HTTP验证的那个例子,按照您说的更正后,仍然未能解决乱码问题。

2.关于P115 URL编码的脚本例子,我留意了那2段脚本,但是似乎是书上和光盘上写错了,我已经做了修改并且调试成功,应该修改的两处代码如下:

原文:
echo  "<a href=' urldecode.php?author={$EncodeAuthor}&book={$EncodeBookName}'>推荐PHP新书</a>";
修改为:
echo  "<a href=' 2.11.2_05.php?author={$EncodeAuthor}&book={$EncodeBookName}'>推荐PHP新书</a>";

原文:
$BookName=urldecode($_GET['BookName']);
修改为:
$BookName=urldecode($_GET['book']);

作者: canboy365   发布时间: 2007-12-11

谢谢。也可以这么改,看来您已经通了。

作者: phpcast   发布时间: 2007-12-13

2007.12.15

1.今天开始看了下杜老师的项目,逐步发现问题:

a.项目中myekang里面没有upload文件夹,因此网站里的相关主题的图片无法显示,相对路径不知道在首页的哪个地方改, 因此图片显示不到(相对路径的变量找了我好久都没找到...)

b.config.inc.php中找本站路径居然用了绝对路径!这样的做法是否不太好?

作者: canboy365   发布时间: 2007-12-15

热门下载

更多