使用key()可以获得数组中当前元素的键名,使用current()则可以返回当前元素的值。
使用array_keys()则可以得到数组中所有的键名。
使用foreach结构foreach($arr as key=>value)可以通过key和value分别获取键名和值。
$data=array(0=>array('id'=>8,'name'=>'name1'),1=>array('id'=>10,'name'=>'name2'),2=>array('id'=>15,'name'=>'name3') );
写出在模板页的代码?若用foreach语句又要怎样显示呢?
用section语句:
<{section name=test loop=$data start=0 step=1}>id:<{$data[test].id}><br/>name:<{$data[test].name}><br/><br/><{sectionelse}>数组为空<{/section}>
用foreach语句:
<{foreach from=$data item=test}>id:<{$test.id}><br/>name:<{$test.name}><br/><br/><{foreachelse}>数组为空<{/foreach}>
B.*****xyz1
C.******xyz2
D.*xyz
答案:C
A.E_WARNING
B.E_USER_ERROR
C.E_PARSE
D.E_NOTICE
答案:B
A.E_WARNING
B.E_USER_ERROR
C.E_PARSE
D.E_NOTICE
答案:C
匹配以0个或多个空白符开头或者0个或多个空白符结尾的字符串
<?php date_default_timezone_set('PRC'); /** * 获取给定月份的上一月最后一天 * @param $date string 给定日期 * @return string 上一月最后一天 */ function get_last_month_last_day($date = ''){ if ($date != '') { $time = strtotime($date); } else { $time = time(); } $day = date('j',$time);//获取该日期是当前月的第几天 return date('Y-m-d',strtotime("-{$day} days",$time)); } // 测试 echo get_last_month_last_day(); echo "<br />"; echo get_last_month_last_day("2013-3-21");?>
可以,还可以在需要控制的子目录下创建.htaccess文件,写入访问控制。
从以下几个方面考虑:
数据库中库和表都用utf8编码
php连接mysql,指定数据库编码为utf8 mysql_query(“set names utf8”);
php文件指定头部编码为utf-8header(“content-type:text/html;charset=utf-8”);
网站下所有文件的编码为utf8
html文件指定编码为utf-8<meta http-equiv="Content-Type"content="text/html;charset=utf-8"/>
urlencode()
md5(str);sha1(str);
<?php date_default_timezone_set("PRC"); // 将字符串转成Unix时间戳 $unix_time = strtotime("2009-9-2 10:30:45"); echo $unix_time; echo "<br />"; // 格式化Unix时间戳为正常时间格式 echo date("Y-m-d H:i:s",$unix_time);?>
<?php iconv('GB2312','UTF-8','悄悄是别离的笙箫');?>
htmlspecialchars或者htmlentities
mb_sring、iconv、curl、GD、XML、socket、MySQL、PDO等
FleaPHP、Zend Framework、CakePHP、Symfony、ThinkPHP、YII、CodeIgniter等
上传文件的表单使用post方式,并且要在form中添加enctype='multipart/form-data'
。
一般可以加上隐藏域:<input type=hidden name='MAX_FILE_SIZE' value=dddddd>
,位置在file域前面。
value的值是上传文件的客户端字节限制。可以避免用户在花时间等待上传大文件之后才发现文件过大上传失败的麻烦。
使用file文件域来选择要上传的文件,当点击提交按钮之后,文件会被上传到服务器中的临时目录,在脚本运行结束时会被销毁,所以应该在脚本结束之前,将其移动到服务器上的某个目录下,可以通过函数move_uploaded_file()来移动临时文件,要获取临时文件的信息,使用$_FILES。
限制上传文件大小的因素有:
客户端的隐藏域MAX_FILE_SIZE的数值(可以被绕开)。
服务器端的upload_max_filesize,post_max_size和memory_limit。这几项不能够用脚本来设置。
自定义文件大小限制逻辑。即使服务器的限制是能自己决定,也会有需要个别考虑的情况。所以这个限制方式经常是必要的。
UBB代码是HTML的一个变种,通过程序自定义我们的标签,比如“[a]PHP中UBB的使用[/a]
”这样的标签,其实质就是查找[a][/a]
标签,将其替换成的标准html,说白了,就是将标准的html标记通过技术手段使其简化,其输出出来的结果还是标准的html。
明白了ubb的原理,那么再制作一个简单的ubb编辑器就不难了,和fck之类的编辑器比较起来,ubb代码最大的优点就是代码简单,功能很少,简单的ubb只需要一个文件,而且ubb标签可以自己来定义,更改起来很方便,在php中就是利用替换函数就可以将
html进行标签化,输出时进行标签的转化。
可以自己设置上传文件的保存目录,与文件名拼凑形成一个文件路径,使用move_uploaded_file(),就可以完成将文件保存到指定目录。
可以通过上传的文件名获取到文件后缀,然后使用时间戳+随机数+文件后缀
的方式为文件重新命名,这样就避免了重名。
debug_print_backtrace()
{section name=temp loop=$ids} {if $ids[temp].id==500} <span style=‘color:#f00;’>{$ids[temp].id}</span> {esle} {$ids[temp].id} {/if} {/section}
使用{$smarty.now}
来获取当前时间,得到的是unix系统时间戳
使用变量调节器进行格式化,如下:{$smarty.now|date_format:“%Y-%m-%d%H:%M:%S”}
$smarty.get.变量 #显示通过get方式传过来的指定变量的值
$smarty.post.变量 #显示通过post方式传过来的指定变量的值
$smarty.cookies.变量 #显示通过cookie中指定变量的值
$smarty.server.SERVER_NAME #显示server变量值,$_SERVER系列变量
$smarty.env.PATH #显示系统环境变量值,$_ENV系列变量
$smarty.session.变量 #显示session中指定变量的值
$smarty.request.变量 #显示通过post、get、cookie中指定变量的值
使用模板分隔符包含,传递参数则使用HTML属性的方式,例如:{html_p_w_picpath file="pumpkin.jpg"}
mysql,gd,pdo,XML,zip,filesystem,mail等
utf8_to_gb2312或者utf8togb2312
<IfModulemod_rewrite.c>RewriteEngineonRewriteCond%{REQUEST_FILENAME}!-fRewriteCond%{REQUEST_FILENAME}!-dRewriteBase/RewriteRule./index.php[L]</IfModule>
如果REQUEST_FILENAME文件存在,就直接访问文件,不进行下面的rewrite规则,
如果REQUEST_FILENAME目录存在,就直接访问目录,不进行下面的rewrite规则,
RewriteRule./index.php[L]的意思是把所有的请求都给index.php处理。
一般是在header、set_cookie以及session_start函数前面有输出(包括空格)的情况下,会报该警告信息
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。