日历
| |||||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
| 1 | 2 | 3 | 4 | ||||||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 | |||
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | |||
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | |||
| 26 | 27 | 28 | 29 | 30 | 31 | ||||
存档
搜索标题
音乐欣赏
统计信息
- 访问量: 421
- 日志数: 4
- 建立时间: 2007-05-19
- 更新时间: 2007-05-31
{看到你进我的网站我真的是好高兴}我是一个{在校}的{英语专业的大学生}{准确地说我是被一个错误的时间举行的一次{错误}的{考试}带到这个错误的地方的常范错误的人}|虽然为{英语专业}可是我几乎把{所有}的时间都花在了{计算机},我自认为我这一辈是靠{计算机}知识而不是{英语}知识生存的。今日{建站}一个{写写心得}{做做评论}{交交朋友}{搞搞兴趣}
我的最新日志
-
PHP 格式化 MYSQL 查询结果里遇到的一个问题
2007-5-31
今天在学习PHP格式化MYSQL查询结果的时候,使用了下列的自定义函数:
输出结果如下:function displayWines($result)
{
print "<h1>Our Wines</h1>";
//表开始,加上队友名称
print "\n<table>\n<tr>\n" .
"\n\t<th>WINE ID </th>" .
"\n\t<th>WINE NAME</th>" .
"\n\t<th>TYPE</th>" .
"\n\t<th>YEAR</th>" .
"\n\t<th>WINERY ID </th>" .
"\n\t<th>DEscrīptION </th>" .
"\n</tr>";
//把记录截取至数组 $row ,直到结果集不再有记录为止
while ($row = @ mysql_fetch_array($result))
{
//表格开始
print "\n<tr>";
//配合相应的<td>,输出记录中每个字段
foreach($row as $data)
print "\n\t<td> {$data} </td>";
//一行结束
print "\n</tr>\n";
}
//表格结束
print "\n</table>\n";
}Our Wines
WINE ID WINE NAME TYPE YEAR WINERY ID DEscrīptION 1 1 Archibald Archibald 2 2 1997 1997 1 1 2 2 Pattendon Pattendon 3 3 1975 1975 1 1 3 3 Lombardi Lombardi 4 4 1985 1985 2 2 4 4 Tonkin Tonkin 2 2 1984 1984 2 2 5 5 Titshall Titshall 5 5 1986 1986 2 2 6 6 Serrong Serrong 6 6 1995 1995 2 2 7 7 Mettaxus Mettaxus 5 5 1996 1996 2 2 8 8 Titshall Titshall 4 4 1987 1987 3 3 9 9 Serrong Serrong 3 3 1981 1981 3 3 10 10 Chester Chester 5 5 1999 1999 3 3 11 11 Chemnis Chemnis 2 2 1980 1980 3 3
结果里为什么会把 $data 都输出再次,搞不懂
-
PHP自带可以代替echo调试的unit函数
2007-5-29
今天发现个函数 assert 和 assert_options, 他们组合可以完成一个简单的phpunit的功能, 但是实在是太简单, 所以用处不太大, 但是还是记录一下好了.
主要问题是不能灵活的自己定义错误的提示信息,只能提示出问题的文件和行数.
具体的使用方法可以看 <
> 或者 < > 同时可以结合 <
>中 "XXVII. Error Handling and Logging Functions" 章节里的东西,共同使用. 下面是我写的一个测试文件, 包含了所有的功能的测试,不过ASSERT_QUIET_EVAL一直不太明白,没测试出来具体有什么样作用
以下是引用片段:
<?php
function assert_failed($file, $line, $expr) {
print "Assertion failed in $file [ $line ] : $expr <br/>";
}
//error_reporting设置为0, 相当于调用assert_options(ASSERT_WARNING, 0);
//error_reporting(0);
//是否启用对ASSERT_ACTIVE的支持
assert_options(ASSERT_ACTIVE, 1);
//是否在发送第一次wanning的时候,停止脚本的执行
assert_options(ASSERT_BAIL, 0);
//没搞定,还不明白具体怎么用,偶测试不出来
//assert_options(ASSERT_QUIET_EVAL, 0);
echo "step 1 <br />";
assert(1==1);
echo "step 2 <br />";
assert(2==1);
echo "step 3 <br />";
//设定assert的callback样式,可以自己定义wanning信息显示时的样式
assert_options(ASSERT_CALLBACK, 'assert_failed');
//不显示assert()自己产生warnning信息,如果设置了ASSERT_CALLBACK,仍然还会显示ASSERT_CALLBACK函数对应的信息,但是函数中传入的$expr参数不起作用.
//assert_options(ASSERT_WARNING, 1);
assert(1==1);
assert((1/0)>2);
echo "step 4 <br />";
?> -
互联网广告花样频出
2007-5-24
曾经有一段时间,互联网上充斥着躲不掉的弹出式广告,有的相当低俗,比如向喜欢窥探隐私者推销的廉价监控摄像头。尽管这段不堪回首的日子或许已经过去,不过随着互联网广告继续蚕食着电视和平面媒体广告的市场,广告商在广告设计上变得更为大胆,使用更多的视觉效果,而且网站也在学习如何吸引访客关注其页面上的广告。
广告客户表示,互联网广告眼下最走红的是“富媒体”(rich media),它具有动画、声音等广告表现形式。LowerMyBills.com因铺天盖地的广告宣传而臭名远扬,广告中的主角既有月夜中在屋顶跳舞的人,也有大吃一惊的办公室职员。还有些广告当用户把鼠标放在上面时就会激活,跳出“占地”更大的广告窗口,兜售汽车、电影、肥皂,不一而足。
富媒体也包括视频。互联网广告新一代中表现形式最为复杂的就是电视广告的网络版了,只要用户点击一下,广告就会开始播放。
视频在各大网站都很流行,它们也不仅仅是广告商的专利。新闻网站不但提供传统的文字内容,还增加了视频报导。他们这么做主要是为了向广告客户收取更多的费用,这项收费最多能比传统文字内容广告高出两倍。
同样,客户也对视频广告感兴趣,因为这是他们熟悉的领域,可以把在电视上播放过的成功广告拿来直接使用。
这种视频广告经常通过“前置”方式进行播放,即在用户想看的视频内容前强制插播。在大多数情况下,视频广告是没办法跳过去的。
目前互联网上的争论焦点是这些前置广告应该播放多长时间,因为人集中注意力的时间越来越短,一般认为播放广告30秒钟已经是上限。
ESPN体育网站是最热门的网站之一,它正与Gatorade公司商谈,在视频中不再加入前置广告;不过在其热门晚间节目“运动聚焦”(SportsCenter)的网络简短版中,仍会插播一段广告。在节目中,ESPN主持人先介绍一下本期内容提要,然后说稍后回来,进入一段10秒或15秒钟的Gatorade饮料广告,通常广告内容是一位运动员谈论体育运动。放完广告后,ESPN的节目继续进行。
这些视频广告需要“库存”页面作为平台来播放广告。Undertone Networks网络广告咨询公司的首席执行官迈克尔•凯西迪(Michael Cassidy)说,近期各大网站正在采取措施增加页面的“库存量”,以抵消因互联网逐渐成熟导致用户数量增长放缓所带来的不利影响。因此,各家网站开始增加看上去与网站“主题”似乎不相干的内容,比如,天气频道(Weather Channel)的网站在有关气象的栏目之外还开设了宠物栏目,上面有网站读者的宠物猫狗的图片。
各大网站还在不断更新吸引眼球的方式,比如利用各类排行榜、幻灯片播放以及照片收藏等现已十分常见的网络内容。你可能以为自己在点击“年度十大科技酷玩”的网页,而实际上,你在帮助网站增加10个可刊登广告的新网页。
其它网站也在借鉴电视运营的一些技巧:电视中不时会播放节目预告,让你了解一部分内容,吸引你稍后来收看这个节目。举例而言,热门的雅虎(Yahoo)主页上方经常会有头条新闻的简介,吸引你点击链接以浏览整个新闻故事。最近就有一个这样的例子:一个页面上有条新闻,说女演员安娜•尼可•史密斯(Anna Nicole Smith)所生孩子的亲生父亲已通过DNA鉴定加以确认;你点击链接后会弹出一个新页面,告诉你那人就是莱瑞•伯克海德(Larry Birkhead)。在这个过程中,雅虎销售了两个页面广告,而非仅仅一个。
雅虎承认这种做法的存在,但声明这种方式是有选择性的,以避免激怒用户,而且只用于那些不太严肃的新闻故事上。
一些新闻网站还有一个增加广告页面的招数,即将一篇较短的新闻报导分成两三个部分,迫使读者分页浏览才能看完。当然,读者可以将页面设置为打印预览,绕开这种伎俩,一次读完所有内容。
网络广告中的许多变化不易被用户察觉,网站可以利用信息优势来针对特定的用户群发布广告。仅次于雅虎新闻(Yahoo News)的美国第二大新闻网站“天气频道”让用户选择需要天气预报服务的地点。
“天气频道”网站销售部负责人彼得•格林恩(Peter Greene)说,经验告诉他们,那些输入邮政编码来确定天气预报地点的用户很可能就住在该区域,而那些输入城市名的用户很可能是路过此地。因此,网站的销售人员可以根据两类不同的搜索方式来发布不同的广告:输入邮政编码的看到当地零售商的广告,而输入城市名的看到航空公司或饭店的广告。
虽然各种网站在广告发布方面越来越“锐意进取”,但一些声誉卓着的网站表示,他们对此采取谨慎态度,以免对其品牌造成不利影响。举例而言,有线电视新闻网(CNN)网站在2006年增加了一倍的视频新闻数量,但将主页顶端的广告数量限制为一个。网站广告部负责人格莱格•戴尔巴(Greg D'Alba)说道,我们称之为优雅的广告。 -
关于PHP5中 构造函数遇到的问题
2007-5-23
我在学习PHP中,学到 “构造函数”的时候,因为我这里总是不太懂,所以遇到了下面的这个问题,我不知道怎么解决,不知道有没有谁可以告诉我是为什么:
如下所示:
<?php
class UnitCounter
{
var $units = 0;
var $weightPerUnit = 1.0;
function add($n = 1)
{
$this->units = $this->units + $n;
}
function totalWeight()
{
return $this->units * $this->weightPerUnit;
}
//构造函数:设定成员变量的初始值
// function construct($unitWeight = 1.0)
// {
// $this->weightPerUnit = $unitWeight;
// $this->units = 0;
// }
}
?>
<?php
$apple = new UnitCounter(1.2);
$apple->units = 10;
$apple->add(2);
//$Weight = $apple->totalWeight();
print "There are " . $apple->totalWeight() . " kg apples.";
?>
这段代码执行结果为:There are 12 kg apples.
但是如下代码:
<?php
class UnitCounter
{
var $units;
var $weightPerUnit;
function add($n = 1)
{
$this->units = $this->units + $n;
}
function totalWeight()
{
return $this->units * $this->weightPerUnit;
}
//构造函数:设定成员变量的初始值
function construct($unitWeight = 1.0)
{
$this->weightPerUnit = $unitWeight;
$this->units = 0;
}
}
?>
<?php
$apple = new UnitCounter(1.2);
$apple->units = 10;
$apple->add(2);
//$Weight = $apple->totalWeight();
print "There are " . $apple->totalWeight() . " kg apples.";
?>
的执行结果为:There are 0 kg apples.
-------------------------------------------------
我是在PHP5上运行的。请问有没有谁知道是为什么啊。
