当前位置: 编程技术>php
本页文章导读:
▪PHP中动态HTML的输出技术
你可以在php程序中的任何地方使用 echo "hello world!"; 来输出你想输出的内容。 不过你将遇到以下麻烦: 1 - 当你试图在hello和world之间加入两个(或两个以上)空格, 你使用: echo "hello world!";.........
▪也谈截取首页新闻 - 范例
截取yahoo.com.cn新闻[仅供实验] 有很多截取首页新闻的程序,但是并不能成功。 他们的工作原理无非两种,一种是采用某些网站称之为backend的后端数据库接口,另一种则是硬声声的根据html代.........
▪PHP4实际应用经验篇(6)
作者:孙运动 现在,你已经明白PHP允许你嵌套条件语句。然而,如果你再看看那个用来示范此概念的例子时你将同意那是既复杂又令人感到可怕。 ---------------------------------------------------------.........
[1]PHP中动态HTML的输出技术
来源: 互联网 发布时间: 2013-11-30
你可以在php程序中的任何地方使用
echo "hello world!";
来输出你想输出的内容。
不过你将遇到以下麻烦:
1 -
当你试图在hello和world之间加入两个(或两个以上)空格,
你使用:
echo "hello world!";
你得到的输出还是一个空格,或者你在行首加入一个空格,
你的空格也将被忽略。
2 -
更糟的是输出用户输入的内容时,有心或无意的用户输入将
使你的输出变的一团糟,甚至给其他用户带来麻烦。
比如:
<form action="/blog_article/output.html">
<textarea name="in_txt">
</textarea>
<br>
<input type="submit">
</form>
如果用户输入中有不止一行的内容,那么你如果简单地
echo $in_txt;
用户的换行将被忽略。
3 -
还是上面的例子,大部分情况我们不希望用户输入html
代码,因为你不知道用户会输入什么。
用户甚至可以写一段代码使你网站所有的用户死机。
当然你不希望那样,但是你如果简单地
echo $in_txt;
就不可能避免。
解决方法:
对于1,可以使用ereg_replace(" {2}","$nbsp; ",$in_txt)
两个在一起的空格将变成两个空格的转义符($nbsp)。
对于2,nl2br($in_txt)是最好的选择,这样所以的换行就换成
"<br>"了。
对于3,安全地显示用户输入的html代码,php中也有专门的函数。
htmlspecialchars($in_txt)就可以了。
另外,如果$in_txt是从mysql数据库中提出的,那么他在以前插入时
一定要使用addslashes(),相应的,取出时就一定要stripslashes()。
总结:
如果$in_txt是用户输入的文本,一般可以这样输出:
echo ereg_replace(" {2}"," ",nl2br(htmlspecialchars(stripslashes($in_txt))));
echo "hello world!";
来输出你想输出的内容。
不过你将遇到以下麻烦:
1 -
当你试图在hello和world之间加入两个(或两个以上)空格,
你使用:
echo "hello world!";
你得到的输出还是一个空格,或者你在行首加入一个空格,
你的空格也将被忽略。
2 -
更糟的是输出用户输入的内容时,有心或无意的用户输入将
使你的输出变的一团糟,甚至给其他用户带来麻烦。
比如:
<form action="/blog_article/output.html">
<textarea name="in_txt">
</textarea>
<br>
<input type="submit">
</form>
如果用户输入中有不止一行的内容,那么你如果简单地
echo $in_txt;
用户的换行将被忽略。
3 -
还是上面的例子,大部分情况我们不希望用户输入html
代码,因为你不知道用户会输入什么。
用户甚至可以写一段代码使你网站所有的用户死机。
当然你不希望那样,但是你如果简单地
echo $in_txt;
就不可能避免。
解决方法:
对于1,可以使用ereg_replace(" {2}","$nbsp; ",$in_txt)
两个在一起的空格将变成两个空格的转义符($nbsp)。
对于2,nl2br($in_txt)是最好的选择,这样所以的换行就换成
"<br>"了。
对于3,安全地显示用户输入的html代码,php中也有专门的函数。
htmlspecialchars($in_txt)就可以了。
另外,如果$in_txt是从mysql数据库中提出的,那么他在以前插入时
一定要使用addslashes(),相应的,取出时就一定要stripslashes()。
总结:
如果$in_txt是用户输入的文本,一般可以这样输出:
echo ereg_replace(" {2}"," ",nl2br(htmlspecialchars(stripslashes($in_txt))));
[2]也谈截取首页新闻 - 范例
来源: 互联网 发布时间: 2013-11-30
截取yahoo.com.cn新闻[仅供实验]
有很多截取首页新闻的程序,但是并不能成功。
他们的工作原理无非两种,一种是采用某些网站称之为backend的后端数据库接口,另一种则是硬声声的根据html代码截取。本程序采用的是后者。应该说,容错性能比较好。
<?
$open = fopen("http://www.yahoo.com.cn/index.html", "r");//网页地址
$read = fread($open, 15000);
fclose($open);
$search = eregi("<!-- Start in the news -->(.*)<!-- End in the news -->", $read, $printing);//截取一段源代码,最好先分析一下源代码
//以下开始取出容余源代码
$printing[1] = str_replace("href=/index.html"/homer/?", "href=/index.html"", $printing[1]);
$printing[1] = str_replace("href=/index.html"/headlines/fullcoverage/", "href=/index.html"http://www.yahoo.com.cn/headlines/fullcoverage/", $printing[1]);
$printing[1] = str_replace("</td></tr><tr><td valign=top align=right>", "", $printing[1]);
$printing[1] = str_replace("</td><td>", "", $printing[1]);
$printing[1] = str_replace(" , "", $printing[1]);
$printing[1] = str_replace("</small>", "", $printing[1]);
$content = $printing[1];
$content = explode("-", $content);
$headlines = sizeof($content);
for ($i = 0; $i < $headlines; $i++) {
print "新闻".($i+1).") : $content[$i]<BR>";//激动人心的时刻到了!显示出来了!
}
?>
在php3/php4 apache下调试通过。
有很多截取首页新闻的程序,但是并不能成功。
他们的工作原理无非两种,一种是采用某些网站称之为backend的后端数据库接口,另一种则是硬声声的根据html代码截取。本程序采用的是后者。应该说,容错性能比较好。
<?
$open = fopen("http://www.yahoo.com.cn/index.html", "r");//网页地址
$read = fread($open, 15000);
fclose($open);
$search = eregi("<!-- Start in the news -->(.*)<!-- End in the news -->", $read, $printing);//截取一段源代码,最好先分析一下源代码
//以下开始取出容余源代码
$printing[1] = str_replace("href=/index.html"/homer/?", "href=/index.html"", $printing[1]);
$printing[1] = str_replace("href=/index.html"/headlines/fullcoverage/", "href=/index.html"http://www.yahoo.com.cn/headlines/fullcoverage/", $printing[1]);
$printing[1] = str_replace("</td></tr><tr><td valign=top align=right>", "", $printing[1]);
$printing[1] = str_replace("</td><td>", "", $printing[1]);
$printing[1] = str_replace(" , "", $printing[1]);
$printing[1] = str_replace("</small>", "", $printing[1]);
$content = $printing[1];
$content = explode("-", $content);
$headlines = sizeof($content);
for ($i = 0; $i < $headlines; $i++) {
print "新闻".($i+1).") : $content[$i]<BR>";//激动人心的时刻到了!显示出来了!
}
?>
在php3/php4 apache下调试通过。
[3]PHP4实际应用经验篇(6)
来源: 互联网 发布时间: 2013-11-30
作者:孙运动
现在,你已经明白PHP允许你嵌套条件语句。然而,如果你再看看那个用来示范此概念的例子时你将同意那是既复杂又令人感到可怕。
--------------------------------------------------------------------------------
< ?
if ($day == "Thursday")
{
if ($time == "12")
{
if ($place == "Italy")
{
$lunch = "pasta";
}
}
}
?>
--------------------------------------------------------------------------------
还好,除了我们已经可以不受任何限制使用的比较操作符之外,PHP 还提供了一些逻辑操作符来允许你把条件语句描述聚集起来。下面的表格清楚地表明了这些:
假设 $delta = 12 并且 $omega = 9
操作符
意义
例子
结果
&&
AND
$delta == $gamma && $delta > $omega
True
$delta && $omega < $omega
False
||
OR
$delta == $gamma || $delta < $omega
True
$delta > $gamma || $delta < $omega
False
!
NOT
!$delta
False
< =
小于或等于
$delta < = $omega
False
好,我们可以用逻辑操作符重写上面例子的代码,你看,下面的表述是不是更简单些?
--------------------------------------------------------------------------------
< ?
if ($day == "Thursday" && $time == "12" && $place == "Italy")
{
$lunch = "pasta";
}
--------------------------------------------------------------------------------
简单文雅吗? Yes
现在,你已经明白PHP允许你嵌套条件语句。然而,如果你再看看那个用来示范此概念的例子时你将同意那是既复杂又令人感到可怕。
--------------------------------------------------------------------------------
< ?
if ($day == "Thursday")
{
if ($time == "12")
{
if ($place == "Italy")
{
$lunch = "pasta";
}
}
}
?>
--------------------------------------------------------------------------------
还好,除了我们已经可以不受任何限制使用的比较操作符之外,PHP 还提供了一些逻辑操作符来允许你把条件语句描述聚集起来。下面的表格清楚地表明了这些:
假设 $delta = 12 并且 $omega = 9
操作符
意义
例子
结果
&&
AND
$delta == $gamma && $delta > $omega
True
$delta && $omega < $omega
False
||
OR
$delta == $gamma || $delta < $omega
True
$delta > $gamma || $delta < $omega
False
!
NOT
!$delta
False
< =
小于或等于
$delta < = $omega
False
好,我们可以用逻辑操作符重写上面例子的代码,你看,下面的表述是不是更简单些?
--------------------------------------------------------------------------------
< ?
if ($day == "Thursday" && $time == "12" && $place == "Italy")
{
$lunch = "pasta";
}
--------------------------------------------------------------------------------
简单文雅吗? Yes
最新技术文章: