圣月醒剑吧 关注:200贴子:13,953

回复:【技术】个人技术贴

只看楼主收藏回复

php 遍历目录方法
<?php
function myscandir($pathname)
{
foreach( glob($pathname) as $filename )
{
if(is_dir($filename))
{
myscandir($filename.'/*');
}
else
{
$rers[] = $filename;
}
}
return $rers;
}
$shu = myscandir('./boke/image/background/*');
echo count($shu); //获取数组长度
?>


143楼2012-09-23 00:08
收起回复
    php把日期时间转化为时间戳
    strtotime(2012-09-25);


    144楼2012-09-25 16:26
    回复
      2026-07-14 10:28:44
      广告
      不感兴趣
      开通SVIP免广告
      var_dump函数
      打印变量的相关信息。此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
      例如:
      <?php  $a = array (1, 2, array ("a", "b", "c"));  var_dump ($a);  /* 输出:  array(3) {  [0]=>  int(1)  [1]=>  int(2)  [2]=>  array(3) {  [0]=>  string(1) "a"  [1]=>  string(1) "b"  [2]=>  string(1) "c"  }  }
      


      145楼2012-09-27 21:24
      回复
        SQL两个表查询为一个表。
        1)如果两表没什么逻辑上的关系,只是字段差不多相同,想一次把两个表的内容查到一个结果集中,那就用 union 吧:
        select 字段列表1 from dls where cp like '%"&keyword&"%'and city like '%"&city&"%'
        union
        select 字段列表2 from dlsinfo where cp like '%"&keyword&"%'and city like '%"&city&"%' order by id desc
        注:字段列表1与字段列表2中的字段数据类型要一一对应,两列表的字段个数要相等,都要有 id 这个字段,因为后面的 Order by id
        2)如果两表存在逻辑上的关系,一个表是另一个表的细节补充,两表的记录联结起来才是一条完整的信息的话,那就用 join 吧:
        select dls.*, dlsinfo.* from dls join dlsinfo on dls.id=dlsinfo.id where dls.cp like '%"&keyword&"%'and dls.city like '%"&city&"%'
        注:Join的关键在于 on 子句,这里的dls.id=dlsinfo.id是我乱写的,应当写两个表有关系的那个主键和外键,以使两表关联。


        146楼2012-10-08 16:49
        回复
          jQuery Mobile Web 移动互联网 HTML5与jQuery的完美结合
          jQuery Mobile 应用了 HTML5 标准的特性,在结构化的页面中完整的页面结构分为 header、content、footer
          这三个主要区域。
          <div data-role="page">
          <div data-role="header">...</div>
          <div data-role="content">...</div>
          <div data-role="footer">...</div>
          </div>
          data-role="page”代表这个 div 是一个 Page,在一个屏幕中只会显示一个 page; header 是标题,content
          是内容块,footer 是页脚
          页面动画: data-transition 属性可以定义页面切换是的动画效果。
          备注:如果想要在目标页面中显示后退按钮,可以在链接中加入data-direction="reverse"属性,这个属性和原来的data-back="true"相同,不知道在正式版本中将会保留哪个属性。
          模态对话框
          模态对话框是一种带有圆角标题栏和关闭按钮的伪浮动层,用于独占事件的应用。任何结构化的页面都可以用
          data-rel="dialog"链接的方式实现模态对话框应用。
          <a href="foo.html" data-rel="dialog">Open dialog</a>
          这个页面切换效果同样可以使用标准页面的 data-transition 参数效果。建议使用"pop"、"slideup"
          和"flip"参数以达到更好的效果。
          这个模态对话框会默认生成关闭按钮,用于回到父级页面。在脚本能力较弱的设备上也可以添加一个带有 data-rel="back"的链接来实现关闭按钮。
          针对支持脚本的设备可以直接使用 href=”#”或者
          data-rel="back"来实现关闭。还可以使用内置的”close”方法来关闭模态对话框,例如:$('.ui-dialog').dialog('close')。
          由于模态对话框是动态显示的临时页面,所以这个页面不会被保存在哈希表内,这就意味着我们讲无法后退到这个页面,例如你在 A 页面中点击一个链接打开 B
          对话框,操作完成并关闭对话框,然后跳转到 C 页面,这时候你点击浏览器的后退按钮,这时候将回到 A 页面,而不是 B 页面。
          工具条
          工具条主要用于”header”,”footer”等区域,用来支撑和实现页面中业务功能的应用。jQuery Mobile
          提供了一个相对完整的解决方案.工具条分为:标题(header bar),页脚(footer bar)和导航(nav bar)这三中应用。
          其中标题和页脚在页面中有一些不同的应用方式,默认工具条是以嵌入(inline)的方式定位的,这种定位方式可以实现最大限度的兼容性,包括在对脚本和 css
          兼容性不佳的设备都有很好的优化。
          另一种是浮动(fixed)定位的方式,也可以成为“静态“定位,这种定位方式可以让工具条始终保持在屏幕的顶部或者底部。并可以接受点击事件来显示/隐藏工具条,已达到最大化利用屏幕空间的目的。
          实现方式:在标题和页脚区域加入 data-position="fixed"属性。
          标题容器
          标题容器是页面页眉区域的显示控件,主要用来显示标题和主要操作的区域。
          <div data-role="header">
          <h1>Page Title</h1>
          </div>
          为了方便页面的交互在页面切换后会在标题容器的左侧自动生成一个后退按钮,这样可以简化我们的开发复杂程度,但是有些时候我们会因为应用的需求而不需要这个后退按钮,可以在标题容器上添加
          data-backbtn="false"属性用来阻止后退按钮的自动创建。
          标题容器的左侧和右侧分别可以放置一个按钮,在阻止自动生成的后退按钮后,我们就可以在后退按钮的位置来自定义按钮了。
          原文地址:http://mobile.51cto.com/web-321954_2.htm


          本楼含有高级字体147楼2012-10-11 16:03
          回复
            客服网站 http://www.tipcoo.com


            148楼2012-10-12 17:24
            回复
              css3 圆角矩形 ,哈哈,居然可以变成圆
              圆角表格,对应属性:border-radius。
              .cx{ border-radius:10em; text-align:center; line-height:100px; background-color:#C6C; border:1px solid #000;width:100px; height:100px;}
              


              本楼含有高级字体149楼2012-10-13 19:43
              收起回复
                css3 透明
                background:rgba(23,78,213,.24);
                background:rgba(red,green,blue,透明度);


                150楼2012-10-13 20:20
                收起回复
                  2026-07-14 10:22:44
                  广告
                  不感兴趣
                  开通SVIP免广告
                  css3 文本阴影
                  text-shadow:1px 2px 2px #000000;
                  text-shadow:x-offset,y-offset,blur,color ;
                  offset:偏移量
                  blur:扩散程度


                  本楼含有高级字体151楼2012-10-13 20:42
                  收起回复
                    css3 盒子阴影
                    box-shadow: 4px 7px 2px #CC6600;
                    box-shadow:x-offset,y-offset,blur,color;


                    本楼含有高级字体152楼2012-10-13 21:15
                    收起回复
                      PHP提升效率优化技巧 Posted on 2012/10/10 by chijince 在PHP编程过程中的注意事项,以提高程序的运行效率,节约资源,这是一篇比较有价值的文章,因此我转载在这里。 0、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。
                      1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。2、$row[’id’] 的速度是$row[id]的7倍。 3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。 4、在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。 5、注销那些不用的变量尤其是大数组,以便释放内存。 6、尽量避免使用__get,__set,__autoload。 7、require_once()代价昂贵。 8、include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少。 9、如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()。 10、函数代替正则表达式完成相同功能。 11、str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。 12、如果一个字符串替换函数,可接受数组或字符作为参数,并且参数长度不太长,那么可以考虑额外写一段替换代码,使得每次传递参数是一个字符,而不是只写一行代码接受数组作为查询和替换的参数。 13、使用选择分支语句(译注:即switch case)好于使用多个if,else if语句。 14、用@屏蔽错误消息的做法非常低效,极其低效。 15、打开apache的mod_deflate模块,可以提高网页的浏览速度。 16、数据库连接当使用完毕时应关掉,不要用长连接。 17、错误消息代价昂贵。 18、在方法中递增局部变量,速度是最快的。几乎与在函数中调用局部变量的速度相当。 19、递增一个全局变量要比递增一个局部变量慢2倍。 20、递增一个对象属性(如:$this->prop++)要比递增一个局部变量慢3倍。 21、递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍。 22、仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局部变量)。PHP大概会检查看是否存在全局变量。 23、方法调用看来与类中定义的方法的数量无关,因为我(在测试方法之前和之后都)添加了10个方法,但性能上没有变化。 24、派生类中的方法运行起来要快于在基类中定义的同样的方法。 25、调用带有一个参数的空函数,其花费的时间相当于执行7至8次的局部变量递增操作。类似的方法调用所花费的时间接近于15次的局部变量递增操作。 26、Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面,少用脚本。 27、除非脚本可以缓存,否则每次调用时都会重新编译一次。引入一套PHP缓存机制通常可以提升25%至100%的性能,以免除编译开销。 28、尽量做缓存,可使用memcached。memcached是一款高性能的内存对象缓存系统,可用来加速动态Web应用程序,减轻数据库负载。对运算码 (OP code)的缓存很有用,使得脚本不必为每个请求做重新编译。 29、当操作字符串并需要检验其长度是否满足某种要求时,你想当然地会使用strlen()函数。此函数执行起来相当快,因为它不做任何计算,只返回在 zval 结构(C的内置数据结构,用于存储PHP变量)中存储的已知字符串长度。但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,如字母小写化(译注:指函数名小写化,PHP不区分函数名大小写)、哈希查找,会跟随被调用的函数一起执行。在某些情况下,你可以使用isset() 技巧加速执行你的代码。(举例如下)
                      


                      本楼含有高级字体153楼2012-10-14 02:32
                      回复
                        if (strlen($foo) < 5) { echo “Foo is too short”$$ }
                        (与下面的技巧做比较)
                        if (!isset($foo{5})) { echo “Foo is too short”$$ } 调用isset()恰巧比strlen()快,因为与后者不同的是,isset()作为一种语言结构,意味着它的执行不需要函数查找和字母小写化。也就是说,实际上在检验字符串长度的顶层代码中你没有花太多开销。 34、当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的,并不适用于其他语言,所以请不要修改你的C或Java代码并指望它们能立即变快,没用的。++$i更快是因为它只需要3条指令(opcodes),$i++则需要4条指令。后置递增实际上会产生一个临时变量,这个临时变量随后被递增。而前置递增直接在原值上递增。这是最优化处理的一种,正如Zend的PHP优化器所作的那样。牢记这个优化处理不失为一个好主意,因为并不是所有的指令优化器都会做同样的优化处理,并且存在大量没有装配指令优化器的互联网服务提供商(ISPs)和服务器。 35、并不是事必面向对象(OOP),面向对象往往开销很大,每个方法和对象调用都会消耗很多内存。 36、并非要用类实现所有的数据结构,数组也很有用。 37、不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码? 38、当你需要时,你总能把代码分解成方法。 39、尽量采用大量的PHP内置函数。 40、如果在代码中存在大量耗时的函数,你可以考虑用C扩展的方式实现它们。 41、评估检验(profile)你的代码。检验器会告诉你,代码的哪些部分消耗了多少时间。Xdebug调试器包含了检验程序,评估检验总体上可以显示出代码的瓶颈。 42、mod_zip可作为Apache模块,用来即时压缩你的数据,并可让数据传输量降低80%。 43、在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量用 file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题; 44、尽量的少进行文件操作,虽然PHP的文件操作效率也不低的; 45、优化Select SQL语句,在可能的情况下尽量少的进行Insert、Update操作(在update上,我被恶批过); 46、尽可能的使用PHP内部函数(但是我却为了找个PHP里面不存在的函数,浪费了本可以写出一个自定义函数的时间,经验问题啊!); 47、循环内部不要声明变量,尤其是大变量:对象(这好像不只是PHP里面要注意的问题吧?); 48、多维数组尽量不要循环嵌套赋值; 49、在可以用PHP内部字符串操作函数的情况下,不要用正则表达式; 50、foreach效率更高,尽量用foreach代替while和for循环; 51、用单引号替代双引号引用字符串; 52、“用i+=1代替i=i+1。符合c/c++的习惯,效率还高”; 53、对global变量,应该用完就unset()掉; This entry was posted in PHP by chijince. Bookmark the permalink. One thought on “PHP提升效率优化技巧
                        chijince on 2012/10/11 at 09:17 said: PHP执行需要更高的效率就要注意这些细节


                        本楼含有高级字体154楼2012-10-14 02:32
                        回复
                          纯CSS下拉菜单分析我很少用到下拉菜单这个东西,所以以前看到什么纯CSS下拉菜单的帖子或者文章都没有详细看过.今天碰巧又看到了这样的文章,反正也闲着也闲着,就稍微研究了一下,自己也学着做了一个DEMO.
                          为什么纯CSS下拉菜单这么受欢迎呢,因为下拉菜单是个好东西,可以使网站导航更加清晰.而在导航种使用JavaScript又有一些弊端.纯CSS下来菜单主要利用了:hover,
                          Selector : hover { sRules }
                          这个slector在CSS2中支持任何对象,而在CSS1中仅支持a对象.所以符合标准的纯CSS下拉菜单在IE6.0中还不能使用,要是你仍然在使用IE6.0的话,不妨试试对标准支持良好的Firefox ® 2.0.
                          一级下拉菜单原理:有了:hover设置鼠标悬停时的属性,那制作下拉菜单就方便了.设想定义一个宽150像数,高20像素名叫menubox的块,在这个块里放入下拉菜单的列表,列表的每一项也是宽150像数高20像素,设置menubox把超出部分隐藏.这时候可以看到的就是菜单里的第一项.当鼠标悬停在menubox上的时候,使用:hover把menubox的高设置为等于菜单的高度,那么菜单的所有项目就显示出来了.
                          HTML
                          <div class="menubox">
                          <ul>
                          <li><a href="#">Item 1</a></li>
                          <li><a href="#">Item 1 1</a></li>
                          <li><a href="#">Item 1 2 >></a>
                          </li>
                          <li><a href="#">Item 1 3</a></li>
                          </ul>
                          </div>
                          CSS
                          .menubox {
                          width:150px;
                          height:20px;
                          overflow:hidden;
                          }
                          .menubox:hover {
                          height:auto;
                          }

                          .menubox a {
                          display:block;
                          width:150px;
                          height:20px;
                          }
                          二级下拉菜单原理:二级下拉菜单采用列表嵌套,先把二级菜单使用display:none;隐藏,当鼠标悬停在需要显示二级菜单的条目时,设置display:block;显示该列表.
                          HTML
                          ......
                          <li><a href="#">Item 1 2 >></a>
                          <ul>
                          <li><a href="#">Item 1 2 1</a></li>
                          <li><a href="#">Item 1 2 2</a></li>
                          </ul>
                          </li>
                          ......
                          CSS
                          .menubox ul li ul {
                          display:none;
                          }
                          .menubox ul li:hover ul {
                          display:block;
                          }

                          全部代码
                          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                          <html xmlns="http://www.w3.org/1999/xhtml">
                          <head>
                          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                          <title>纯CSS菜单</title>
                          <style>
                          body {
                          text-align:center;
                          }
                          #positioner{
                          clear:both;
                          margin:0 auto;
                          position:relative;
                          }
                          .menubox {
                          float:left;
                          width:149px;
                          height:20px;
                          margin:0 1px 0 0;
                          padding:0;
                          overflow:hidden;
                          }
                          .menubox:hover {
                          height:auto;
                          }
                          .menubox ul {
                          margin:0;
                          padding:0;
                          }
                          .menubox ul li {
                          


                          本楼含有高级字体155楼2012-10-14 21:26
                          回复
                            list-style:none;
                            background:#cff;
                            }
                            .menubox ul li ul {
                            display:none;
                            }
                            .menubox ul li:hover ul {
                            display:block;
                            position:absolute;
                            margin-top:-20px;
                            left:149px;
                            }
                            .menubox a {
                            display:block;
                            padding:2px 0 0 0;
                            width:149px;
                            height:17px;
                            border-bottom:1px solid #fff;
                            font-family:Verdana;
                            font-size:12px;
                            text-decoration:none;
                            color:#000;
                            }
                            .menubox a:hover {
                            background:#ffc;
                            color:#F00;
                            }
                            .menubox ul li.showitem a {
                            background:#ccc;
                            }
                            #item2 li {
                            background:#fcf;
                            }
                            </style>
                            </head>
                            <body>
                            <div id="positioner">
                            <div class="menubox">
                            <ul>
                            <li class="showitem"><a href="#">Item 1</a></li>
                            <li class="hiddenitem"><a href="#">Item 1 1</a></li>
                            <li class="hiddenitem"><a href="#">Item 1 2 >></a>
                            <ul id="item2">
                            <li class="hiddenitem"><a href="#">Item 1 2 1</a></li>
                            <li class="hiddenitem"><a href="#">Item 1 2 2</a></li>
                            </ul>
                            </li>
                            <li class="hiddenitem"><a href="#">Item 1 3</a></li>
                            </ul>
                            </div>
                            <div class="menubox">
                            <ul>
                            <li class="showitem"><a href="#">Item 2</a></li>
                            <li class="hiddenitem"><a href="#">Item 2 1</a></li>
                            <li class="hiddenitem"><a href="#">Item 2 2</a></li>
                            <li class="hiddenitem"><a href="#">Item 2 3</a></li>
                            </ul>
                            </div>
                            </div>
                            </body>
                            </html>
                            至于IE,因为只支持a:hover,只能在链接里面嵌入表格代替(<a href="#">Tex<table><tr><td><a href="#">Text</a></td></tr></table></a>),但这是标准不支持的做法,所以在真正使用CSS下拉菜单的时候需要两种方法同时使用,已确保页面的兼容性.要是你嫌这样做很麻烦的话,你也可以使用一款叫Visual Infinite Menus的软件自动生成CSS下拉菜单.


                            本楼含有高级字体156楼2012-10-14 21:26
                            回复
                              2026-07-14 10:16:44
                              广告
                              不感兴趣
                              开通SVIP免广告
                              权限系统:http://blog.163.com哇o5655@126哇blog哇static哇1667428342010629105314717/


                              157楼2012-10-16 16:54
                              收起回复