当前位置: 编程技术>php
本页文章导读:
▪php输出表格的实现代码(修正版)
网上的代码很多都是错误的,特修正了下。 代码如下:<html> <head> <title>二行5列一共10个数据</title> </head> <body> <table border="1" width=80%> <tr> <?php $num = 5; //当.........
▪纯php打造的tab选项卡效果代码(不用js)
1.根据get判断,获取get生成css 代码如下: <style type="text/css"> <?php if(!isset($_GET['city_id'])) { $city_id = 12; } else { $city_id = $_GET['city_id']; } echo '.a'.$city_id.' { color:red; } '; for($i=12;$i<=16;$i++) { if($.........
▪PHP的autoload自动加载机制使用说明
在PHP开发过程中,如果希望从外部引入一个class,通常会使用include和require方法,去把定义这个class的文件包含进来,但是这样可能会使得在引用文件的新脚本中,存在大量的include或require方.........
[1]php输出表格的实现代码(修正版)
来源: 互联网 发布时间: 2013-11-30
网上的代码很多都是错误的,特修正了下。
<html>
<head>
<title>二行5列一共10个数据</title>
</head>
<body>
<table border="1" width=80%>
<tr>
<?php
$num = 5; //当前每一行显示列数
$k = 1; //初始化
while($k<=10)
{
if($k % $num == 0){
if($k==10){
echo '<td>'.$k.'</td></tr>'."\r\n";
}else{
echo '<td>'.$k.'</td></tr><tr>'."\r\n";
}
}
else {
echo '<td>'.$k.'</td>'."\r\n";
}
$k+=1; //自加
}
?>
</table>
</body>
</html>
下面是从数据库读取的:
<?php
$sql = "select * from table ";
$query = mysql_query($sql);
$num = mysql_num_rows($query);
for($i=0;$i <$num;$i++) {
$result = mysql_fetch_array($query);
if($i%3==0){
$str.= " <tr word-break:break-all '> ";
}
$str.= " <td> ".$result[ "title "]. " </td> ";
if(($i+1)%$num==0) {
$str.= " </tr> ";
}
}
?>
<table border=0>
<?
echo $str;
?>
</table>
代码如下:
<html>
<head>
<title>二行5列一共10个数据</title>
</head>
<body>
<table border="1" width=80%>
<tr>
<?php
$num = 5; //当前每一行显示列数
$k = 1; //初始化
while($k<=10)
{
if($k % $num == 0){
if($k==10){
echo '<td>'.$k.'</td></tr>'."\r\n";
}else{
echo '<td>'.$k.'</td></tr><tr>'."\r\n";
}
}
else {
echo '<td>'.$k.'</td>'."\r\n";
}
$k+=1; //自加
}
?>
</table>
</body>
</html>
下面是从数据库读取的:
代码如下:
<?php
$sql = "select * from table ";
$query = mysql_query($sql);
$num = mysql_num_rows($query);
for($i=0;$i <$num;$i++) {
$result = mysql_fetch_array($query);
if($i%3==0){
$str.= " <tr word-break:break-all '> ";
}
$str.= " <td> ".$result[ "title "]. " </td> ";
if(($i+1)%$num==0) {
$str.= " </tr> ";
}
}
?>
<table border=0>
<?
echo $str;
?>
</table>
[2]纯php打造的tab选项卡效果代码(不用js)
来源: 互联网 发布时间: 2013-11-30
1.根据get判断,获取get生成css
<style type="text/css">
<?php
if(!isset($_GET['city_id']))
{
$city_id = 12;
}
else
{
$city_id = $_GET['city_id'];
}
echo '.a'.$city_id.'
{
color:red;
}
';
for($i=12;$i<=16;$i++)
{
if($i != $city_id)
{
if ($i != 12 )
{
echo '.list'.$i.'{
background-image:url("/blog_article/image/style/bg.gif");
}';
}
else
{
echo '.list'.$i.'
{
background-image:url("/blog_article/image/style/left_bg.gif");
}
';
}
}
else
{
if($city_id != 12)
{
echo '.list'.$city_id.'
{
background-image:url("/blog_article/image/style/on.gif");
}
';
}else
{
echo '.list'.$city_id.'{
background-image:url("/blog_article/image/style/recuit_title.gif");
}';
}
}
}
?>
</style>
2.点击的时候,就可以打开链接
<div >
<ul id="recuit_li">
<li ><a href="/blog_article/test/city_id/12.html">北京</a></li>
<?php
include_once ("config/db.inc.php");
$recuit_city_select = "select * from cdb_plugins_city where city_id in(13,14,15,16)";
$recuit_city_query = mysql_query ( $recuit_city_select );
while ( $recuit_city_row = mysql_fetch_assoc ( $recuit_city_query ) ) {
$cid = $recuit_city_row['city_id'];
echo '<li .$recuit_city_row['city_id'].'" ><a .$recuit_city_row['city_id'].'" href="/blog_article/test/city_id/.html' . $recuit_city_row ['city_id'] . '">' . $recuit_city_row ['city_name'] . '</a></li>';
}
?>
</ul>
<span >
<a href="/job/action/recuit_list/amp;cid/12.html" onClick="parent.showWindow('recuit_list',this.href);return false;">更多招募信息</a>
</span>
</div>
<div >
<table width="100%">
<?php
if(!$_GET['city_id'])
{
$recuit_content_select = "select * from cdb_plugins_recuit where city_id= 12 limit 0,8";
$recuit_content_query = mysql_query($recuit_content_select);
while($recuit_content_row = mysql_fetch_assoc($recuit_content_query))
{
echo '<tr height="25">
<td>
<a onclick="parent.showWindow('.'\'recuit_info\','.'this.href'.');return false;"'.'" href="/job/action/recuit_info/amp;recuit_id/.html'.$recuit_content_row['recuit_id'].'">'.$recuit_content_row['recuit_name'].'</a>
</td>
<td width="80" align="right" >
'.$recuit_content_row['username'].'
</td>
</tr>';
}
}
else
{
$recuit_content_select = "select * from cdb_plugins_recuit where city_id={$_GET['city_id']} limit 0,10";
$recuit_content_query = mysql_query($recuit_content_select);
while($recuit_content_row = mysql_fetch_assoc($recuit_content_query))
{
echo '<tr>
<td><a onclick="parent.showWindow('.'\'recuit_info\','.'this.href'.');return false;"'.'" href="/job/action/recuit_info/amp;recuit_id/.html'.$recuit_content_row['recuit_id'].'">'.$recuit_content_row['recuit_name'].'</a></td>
<td width="80" align="right" >'.$recuit_content_row['username'].' </td>
</tr>';
}
}
?>
</table>
</div>
<div >
<?php
include_once ("../include/common.inc.php");
$recuit_query = mysql_query("select * from cdb_plugins_recuit_userinfo where uid=$discuz_uid");
$recuit_rows = mysql_fetch_assoc($recuit_query);
if($recuit_rows['uid'] == '')
{
echo '<a href="/job/action/recuit.html" onclick="parent.showWindow('.'\'recuit\''.',this.href);return false;"><img src="/blog_article/image/style/recuit_frm_input.gif" border="0" /></a> ';
}
else
{
echo '<a href="/job/action/edit_recuit.html" onclick="parent.showWindow('.'\'edit_recuit\''.',this.href);return false;"><img src="/blog_article/image/style/edit_recuit.gif" border="0"/><a> ';
}
?>
</div>
代码如下:
<style type="text/css">
<?php
if(!isset($_GET['city_id']))
{
$city_id = 12;
}
else
{
$city_id = $_GET['city_id'];
}
echo '.a'.$city_id.'
{
color:red;
}
';
for($i=12;$i<=16;$i++)
{
if($i != $city_id)
{
if ($i != 12 )
{
echo '.list'.$i.'{
background-image:url("/blog_article/image/style/bg.gif");
}';
}
else
{
echo '.list'.$i.'
{
background-image:url("/blog_article/image/style/left_bg.gif");
}
';
}
}
else
{
if($city_id != 12)
{
echo '.list'.$city_id.'
{
background-image:url("/blog_article/image/style/on.gif");
}
';
}else
{
echo '.list'.$city_id.'{
background-image:url("/blog_article/image/style/recuit_title.gif");
}';
}
}
}
?>
</style>
2.点击的时候,就可以打开链接
代码如下:
<div >
<ul id="recuit_li">
<li ><a href="/blog_article/test/city_id/12.html">北京</a></li>
<?php
include_once ("config/db.inc.php");
$recuit_city_select = "select * from cdb_plugins_city where city_id in(13,14,15,16)";
$recuit_city_query = mysql_query ( $recuit_city_select );
while ( $recuit_city_row = mysql_fetch_assoc ( $recuit_city_query ) ) {
$cid = $recuit_city_row['city_id'];
echo '<li .$recuit_city_row['city_id'].'" ><a .$recuit_city_row['city_id'].'" href="/blog_article/test/city_id/.html' . $recuit_city_row ['city_id'] . '">' . $recuit_city_row ['city_name'] . '</a></li>';
}
?>
</ul>
<span >
<a href="/job/action/recuit_list/amp;cid/12.html" onClick="parent.showWindow('recuit_list',this.href);return false;">更多招募信息</a>
</span>
</div>
<div >
<table width="100%">
<?php
if(!$_GET['city_id'])
{
$recuit_content_select = "select * from cdb_plugins_recuit where city_id= 12 limit 0,8";
$recuit_content_query = mysql_query($recuit_content_select);
while($recuit_content_row = mysql_fetch_assoc($recuit_content_query))
{
echo '<tr height="25">
<td>
<a onclick="parent.showWindow('.'\'recuit_info\','.'this.href'.');return false;"'.'" href="/job/action/recuit_info/amp;recuit_id/.html'.$recuit_content_row['recuit_id'].'">'.$recuit_content_row['recuit_name'].'</a>
</td>
<td width="80" align="right" >
'.$recuit_content_row['username'].'
</td>
</tr>';
}
}
else
{
$recuit_content_select = "select * from cdb_plugins_recuit where city_id={$_GET['city_id']} limit 0,10";
$recuit_content_query = mysql_query($recuit_content_select);
while($recuit_content_row = mysql_fetch_assoc($recuit_content_query))
{
echo '<tr>
<td><a onclick="parent.showWindow('.'\'recuit_info\','.'this.href'.');return false;"'.'" href="/job/action/recuit_info/amp;recuit_id/.html'.$recuit_content_row['recuit_id'].'">'.$recuit_content_row['recuit_name'].'</a></td>
<td width="80" align="right" >'.$recuit_content_row['username'].' </td>
</tr>';
}
}
?>
</table>
</div>
<div >
<?php
include_once ("../include/common.inc.php");
$recuit_query = mysql_query("select * from cdb_plugins_recuit_userinfo where uid=$discuz_uid");
$recuit_rows = mysql_fetch_assoc($recuit_query);
if($recuit_rows['uid'] == '')
{
echo '<a href="/job/action/recuit.html" onclick="parent.showWindow('.'\'recuit\''.',this.href);return false;"><img src="/blog_article/image/style/recuit_frm_input.gif" border="0" /></a> ';
}
else
{
echo '<a href="/job/action/edit_recuit.html" onclick="parent.showWindow('.'\'edit_recuit\''.',this.href);return false;"><img src="/blog_article/image/style/edit_recuit.gif" border="0"/><a> ';
}
?>
</div>
[3]PHP的autoload自动加载机制使用说明
来源: 互联网 发布时间: 2013-11-30
在PHP开发过程中,如果希望从外部引入一个class,通常会使用include和require方法,去把定义这个class的文件包含进来,但是这样可能会使得在引用文件的新脚本中,存在大量的include或require方法调用,如果一时疏忽遗漏则会产生错误,使得代码难以维护。
自PHP5后,引入了__autoload这个拦截器方法,可以自动对class文件进行包含引用,通常我们会这么写:
function __autoload($className) {
include_once $className . '.class.php';
}
$user = new User();
当PHP引擎试图实例化一个未知类的操作时,会调用__autoload()方法,在PHP出错失败前有了最后一个机会加载所需的类。因此,上面的这段代码执行时,PHP引擎实际上替我们自动执行了一次__autoload方法,将User.class.php这个文件包含进来。
在__autoload函数中抛出的异常不能被catch语句块捕获并导致致命错误。
如果使用 PHP的CLI交互模式时,自动加载机制将不会执行。
当你希望使用PEAR风格的命名规则,例如需要引入User/Register.php文件,也可以这么实现:
//加载我
function __autoload($className) {
$file = str_replace('_', DIRECTORY_SEPARATOR, $className);
include_once $file . 'php';
}
$userRegister = new User_Register();
这种方法虽然方便,但是在一个大型应用中如果引入多个类库的时候,可能会因为不同类库的autoload机制而产生一些莫名其妙的问题。在PHP5引入SPL标准库后,我们又多了一种新的解决方案,spl_autoload_register()函数。
此函数的功能就是把函数注册至SPL的__autoload函数栈中,并移除系统默认的__autoload()函数。一旦调用spl_autoload_register()函数,当调用未定义类时,系统会按顺序调用注册到spl_autoload_register()函数的所有函数,而不是自动调用__autoload()函数,下例调用的是User/Register.php而不是User_Register.class.php:
//不加载我
function __autoload($className) {
include_once $className . '.class.php';
}
//加载我
function autoload($className) {
$file = str_replace('/', DIRECTORY_SEPARATOR, $className);
include_once $file . '.php';
}
//开始加载
spl_autoload_register('autoload');
$userRegister = new User_Register();
在使用spl_autoload_register()的时候,我们还可以考虑采用一种更安全的初始化调用方法,参考如下:
//系统默认__autoload函数
function __autoload($className) {
include_once $className . '.class.php';
}
//可供SPL加载的__autoload函数
function autoload($className) {
$file = str_replace('_', DIRECTORY_SEPARATOR, $className);
include_once $file . '.php';
}
//不小心加载错了函数名,同时又把默认__autoload机制给取消了……囧
spl_autoload_register('_autoload', false);
//容错机制
if(false === spl_autoload_functions()) {
if(function_exists('__autoload')) {
spl_autoload_register('__autoload', false);
}
}
奇技淫巧:在Unix/Linux环境下,如果你有多个规模较小的类,为了管理方便,都写在一个php文件中的时候,可以通过以ln -s命令做软链接的方式快速分发成多个不同类名的拷贝,再通过autoload机制进行加载。
自PHP5后,引入了__autoload这个拦截器方法,可以自动对class文件进行包含引用,通常我们会这么写:
代码如下:
function __autoload($className) {
include_once $className . '.class.php';
}
$user = new User();
当PHP引擎试图实例化一个未知类的操作时,会调用__autoload()方法,在PHP出错失败前有了最后一个机会加载所需的类。因此,上面的这段代码执行时,PHP引擎实际上替我们自动执行了一次__autoload方法,将User.class.php这个文件包含进来。
在__autoload函数中抛出的异常不能被catch语句块捕获并导致致命错误。
如果使用 PHP的CLI交互模式时,自动加载机制将不会执行。
当你希望使用PEAR风格的命名规则,例如需要引入User/Register.php文件,也可以这么实现:
代码如下:
//加载我
function __autoload($className) {
$file = str_replace('_', DIRECTORY_SEPARATOR, $className);
include_once $file . 'php';
}
$userRegister = new User_Register();
这种方法虽然方便,但是在一个大型应用中如果引入多个类库的时候,可能会因为不同类库的autoload机制而产生一些莫名其妙的问题。在PHP5引入SPL标准库后,我们又多了一种新的解决方案,spl_autoload_register()函数。
此函数的功能就是把函数注册至SPL的__autoload函数栈中,并移除系统默认的__autoload()函数。一旦调用spl_autoload_register()函数,当调用未定义类时,系统会按顺序调用注册到spl_autoload_register()函数的所有函数,而不是自动调用__autoload()函数,下例调用的是User/Register.php而不是User_Register.class.php:
代码如下:
//不加载我
function __autoload($className) {
include_once $className . '.class.php';
}
//加载我
function autoload($className) {
$file = str_replace('/', DIRECTORY_SEPARATOR, $className);
include_once $file . '.php';
}
//开始加载
spl_autoload_register('autoload');
$userRegister = new User_Register();
在使用spl_autoload_register()的时候,我们还可以考虑采用一种更安全的初始化调用方法,参考如下:
代码如下:
//系统默认__autoload函数
function __autoload($className) {
include_once $className . '.class.php';
}
//可供SPL加载的__autoload函数
function autoload($className) {
$file = str_replace('_', DIRECTORY_SEPARATOR, $className);
include_once $file . '.php';
}
//不小心加载错了函数名,同时又把默认__autoload机制给取消了……囧
spl_autoload_register('_autoload', false);
//容错机制
if(false === spl_autoload_functions()) {
if(function_exists('__autoload')) {
spl_autoload_register('__autoload', false);
}
}
奇技淫巧:在Unix/Linux环境下,如果你有多个规模较小的类,为了管理方便,都写在一个php文件中的时候,可以通过以ln -s命令做软链接的方式快速分发成多个不同类名的拷贝,再通过autoload机制进行加载。
最新技术文章: