转自:http://blog.chinaunix.net/u1/51625/showart_406076.html
<?php
/*
//静态属性或静态方法不需要所在类被实例化就可以使用
//使用方法:类名::静态方法名(静态属性名)
//例子:static.php
*/
class Math
{
   public static $PI=3.14; //定义静态属性

   //public $PI=3.14; //静态方法不能调用非静态的属性

  
   //定义一个静态方法,求两个数中的最大值

   public static function getMax($num1,$num2){ //static 关键字

      return $num1 > $num2 ? $num1 : $num2;
   }
  
   //定义一个静态方法,求圆面积

   public static function getCircleArea($radius){
      //return Math::$PI * $radius * $radius;//也行

      return self::$PI * $radius * $radius;//建议

      //用self::调用当前类中的静态属性

   }
  
   // 求三个数中的最大值,用self::调用当前类中其它静态方法

   public static function getMax3($num1,$num2,$num3){
      $num1 = self::getMax($num1,$num2);
      $num2 = self::getMax($num2,$num3);
      $num1 = self::getMax($num1,$num2);
         //或$num1 = Math::getMax($num1,$num2);

      return $num1;
   }
}


//-----------------------------------------------------------

$a=1;
$b=2;
echo "最大值:";
echo Math::getMax($a,$b);//注意使用方法, 类名::静态方法名

echo "<br>";
//-----------------------------------------------------------

$r=2;
echo "半径为{$r}的圆的面积为".Math::getCircleArea($r);
echo "<br>";
//------------------------------------------------------------

$a=1;$b=2;$c=3;
echo "{$a},{$b},{$c}三个数中的最大值是" .Math::getMax3($a,$b,$c);

?>
本公司mysql数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MYSQL乱码.
MYSQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.
MYSQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.
用户提交页面的编码与显示数据的页面编码不一致,就肯定会造成PHP页面乱码.
如用户输入资料的页面是big5码, 显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码.
PHP页面字符集不正确.
PHP连接MYSQL数据库语句指定的编码不正确.
注意:
很多人都怀疑mysql版本不一致会导致乱码,相信看了本说明你就不会这样认为了.平时你在某些网站看到的文字可能有几种编码, 如你看到一个繁体字,它有可能是big5编码,也有 可能是utf-8编码的,更有可能是gb码的,没错,也就是说有简体编码的繁体字,也有繁体编码的简体字,一定要了解这一点.
如果你是做一个简体编码的网页,编码定为GB2312,如果有香港和台湾地区的访客提交繁体的信息,就可能会造成乱码,解决方法:
将网站编码设为 utf-8,这样可以兼容世界上所有字符,如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为 GBK, GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK.
使用mysql+php产生乱码的原因都了解得很清楚了,那么解决就不困难了. 阅读全文
  function getFriendList($uid) {    
    $str_url = DEF_INTERFACE_FRIEND_LIST . '?cuid=' . $uid . '&uid=' . $uid . '&pagesize=1000' . '&info=0';

    $ch_curl = curl_init ();
    curl_setopt ( $ch_curl, CURLOPT_TIMEOUT, 3 );
    curl_setopt ( $ch_curl, CURLOPT_HEADER, false );
    curl_setopt ( $ch_curl, CURLOPT_HTTPGET, 1 );
    curl_setopt ( $ch_curl, CURLOPT_RETURNTRANSFER, true );
    curl_setopt ( $ch_curl, CURLOPT_URL, $str_url );

    $str_return = curl_exec ( $ch_curl );

    if ($str_return === false)
      return false;
    curl_close ( $ch_curl );
    $arr_return = json_decode ( $str_return, true );

    return $arr_return;
  }

curl_setopt函数相关参数介绍阅读全文
你还可以参考:http://www.ibm.com/developerworks/cn/opensource/os-php-smarty/
smarty函数库

什么是smarty及其安装

Smarty是一个php模板引擎,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法.

Smarty要求web服务器运行php4.0.6和以上版本.

smarty安装需要smarty库文件。可以去官方网站[url]http://smarty.php.net[/url]下载。我下的是2.6.7版本的。

网上讲了很多安装的教程,但是我都没有成功,所以直接把整个目录名改为smarty直接复制到了网站所在的目录下,然后打开

http://网站路径/smarty/demo/index.php,显示正常,应该算是安装成功了。

基本语法

所有的smarty标签都被加上了定界符.在smarty里,所有定界符以外的内容都是静态的,当smarty遇到了模板标签,将尝试解释他们,然后再以恰当的方式输出.阅读全文

2007-08-09 10:06 刚找到LITERAL的一点东西跟大家分享一下:
Literal 标签区域内的数据将被当作文本处理,此时模板将忽略其内部的所有字符信息. 该特性用于显示有可能包含大括号等字符信息的 javascript 脚本. 当这些信息处于 {literal}{/literal} 标签中时,模板引擎将不分析它们,而直接显示.
例子:



php

php tags allow php to be embedded directly into the template. They will not be escaped, regardless of the $php_handling setting. This is for advanced users only, not normally needed.

php 标签允许在模板中直接嵌入 php 脚本. 是否处理这些语句取决于$php_handling的设置. 该语句通常不需要使用,当然如果你非常了解此特性或认为必须要用,也可以使用.

php 标签演示

这和定义的解散解析标签也有管,如:<{ }> ,得这样:
<p class="m30">
{if $$mytest[loop].ts|@count != 0}
参与过的好友:
{foreach from=$mytest[loop].ts item=ts}
<a href="?action=friendtest&uid={$ts.0}">{$ts.1}</a> &nbsp;&nbsp;
{/foreach}
{/if}
</p>
<p>
{if $mytest[loop].ta|@count != 0}
和我结果一样的好友:{foreach item=ta from=$mytest[loop].ta}
<a href="?action=friendtest&uid={$ta.0}">{$ta.1}</a> &nbsp;&nbsp;
{/foreach}
{/if}
</p>
背景:有时在上线时出现只需要导出线下包含某个部分的数据,和线上对接上即可,这儿可以用awk实现,当然是用mysqldump直接来实现来得快,但是要是真没有办法还得用脚本来实现,参看:http://jackxiang.com/post/2364/
一)mysqldump 可以导出where条件的sql出来,再source进去(-d -t是有区别的:-d:只是data建表结构,-t:table数据):
mysqldump -d newbbs > newbbs_table_structure_export_2018_06_14.sql  #只导出结构样例实践

实践情况如下:

Q1:
Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events.
Q2:
mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' at line 1 (1064)


——————
下面解决方法来源于网络,针对我的版本是mysql5.6,问题解决:
最后找到解决办法、用新安装的mysql绝对路径来实现备份。
参考:http://blog.sina.com.cn/s/blog_692778030101mycz.html

二)selected into可以有格式也有部分字段导出像:"",""...这样的,再通过load data infile 导入。
导出部分且有条件的SQL:

阅读全文
php 通过error_reporting(0);关闭错误提示!
error_reporting(E_ALL); //显示所有的错误讯息
error_reporting(E_ALL&~E_NOTICE) 这是什么意思,表示提示除去 E_NOTICE 之外的所有错误信息
error_reporting(0);//关闭全部!

你把php.ini中error_reporting这个参数设置为error_reporting=E_ERROR
只样就只会报告致命性错误了。
error_reporting可以设置的参数如下:

; 错误报告是位字段。可以将数字加起来得到想要的错误报告等级。
; E_ALL - 所有的错误和警告(不包括 E_STRICT)
; E_ERROR - 致命性的运行时错误
; E_WARNING - 运行时警告(非致命性错误)
; E_PARSE - 编译时解析错误
; E_NOTICE - 运行时提醒(这些经常是你代码中的bug引起的,也可能是有意的行为造成的。)
; E_STRICT - 编码标准化警告,允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。
; E_CORE_ERROR - PHP启动时初始化过程中的致命错误
; E_CORE_WARNING - PHP启动时初始化过程中的警告(非致命性错)
; E_COMPILE_ERROR - 编译时致命性错
; E_COMPILE_WARNING - 编译时警告(非致命性错)
; E_USER_ERROR - 用户自定义的错误消息
; E_USER_WARNING - 用户自定义的警告消息
; E_USER_NOTICE - 用户自定义的提醒消息
; 例子:
;error_reporting = E_ALL & ~E_NOTICE ; 显示所有的错误,除了提醒
;error_reporting = E_COMPILE_ERROR&#124;E_ERROR&#124;E_CORE_ERROR ; 仅显示错误

---------------------------------------------------------------------------------------------------------------------
使用error_reporting(0);关闭错误成功或失败的例子:
关闭php提示错误功能
在php.ini 中把display_errors改成
display_errors = OFF  
或在php文件前加入
error_reporting(0)  
1)使用error_reporting(0);失败的例子:
A文件代码:
<?  
error_reporting(0);  
echo 555  
echo 444;  
?>  
错误:
Parse error: parse error, expecting `','' or `';'' in E:\webphp\2.php on line 4
2)使用error_reporting(0);成功的例子:
a文件代码:
<?php  
error_reporting(0);  
include("b.php");  
?>  
b文件代码:
<?php  
echo 555  
echo 444;  
?>  

这是很多phper说用error_reporting(0)不起作用。第一个例子A.php里面有致命错误,导致不能执行,不能执行服务器则不知有这个功能,所以一样报错。
第二个例子中a.php成功执行,那么服务器知道有抑制错误功能,所以就算b.php有错误也抑制了。
ps:抑制不了mysql错误。

From:http://blog.csdn.net/heiyeshuwu/article/details/8024567





在写Php上传时,nginx上传模块nginx_upload_module时把文件移到自己想要的目录会用到:http://jackxiang.com/post/6221/
但后来根本不用这个,



--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2013-04-09:
Rango-韩天峰(3507499**)  17:40:30
现在PHP5.3提供了__DIR__常量了,以前还要写 dirname(__FILE__)
回忆未来-向东-Jàck(3726476**)  17:42:11
我是想获取一个变量里的dir,rango说的能使。?
Rango-韩天峰(3507499**)  17:42:22
能啊
这个只是字符串分析的函数,不会去读文件系统

我们知道PHP中提供了一个魔术常量(magic constant)__FILE__,用来指向当前执行的PHP脚本。但PHP没有直接提供该脚本所在目录的常量。也就是说如果我们要得到当前PHP脚本所在的目录,需要使用dirname()这个函数:

<?php

$dir = dirname(__FILE__);

?>

在PHP5.3中,增加了一个新的常量__DIR__,指向当前执行的PHP脚本所在的目录。

例如当前执行的PHP文件为 /www/website/index.php

则__FILE__等于'/www/website/index.php'

而__DIR__等于'/www/website'

现在我们要包含当前文件目录或子目录下的文件,可以直接使用:

<?php

require_once __DIR__ . '/path/to/test.inc.php';
?>

http://www.phpeye.com/article/view/id/149/


例子 1
<?php
print_r(pathinfo("/testweb/test.txt"));
?>
输出:
Array
(
[dirname] => /testweb
[basename] => test.txt
[extension] => txt
)
例子 2
<?php
print_r(pathinfo("/testweb/test.txt",PATHINFO_BASENAME));
?>
输出:
test.txt

在实际的运用中是这样的:

调试PHP输出:
Array
(
    [dirname] => /upload/video/user
    [basename] => .20130410223139569564.JPG
    [extension] => JPG
    [filename] => .20130410223139569564
)
jpg
输出完成 (耗时 0 秒) - 正常终止
———————————————————————————————————————————————————
再次使用的方法备案(找到以xx.php.mine结果的文件并且删除掉: rm -Rf /xxx/xx.*)Add By:2014-01-03:
<?php
for($i=1;$i<=5;$i++)
{
  $array_test_all = array("0"=>"test_array","1"=>"test_all");
  $arr_test[] = $array_test_all;
}
print_r($arr_test);
echo "________________________________________________________\n";

foreach($arr_test as $key=> $values)
{

  $arr_test[$key]['ts'][]="111";
}
print_r($arr_test);

?>

Array
(
    [0] => Array
        (
            [0] => test_array
            [1] => test_all
        )

    [1] => Array
        (
            [0] => test_array
            [1] => test_all
        )

    [2] => Array
        (
            [0] => test_array
            [1] => test_all
        )

    [3] => Array
        (
            [0] => test_array
            [1] => test_all
        )

    [4] => Array
        (
            [0] => test_array
            [1] => test_all
        )

)
________________________________________________________
Array
(
    [0] => Array
        (
            [0] => test_array
            [1] => test_all
            [ts] => Array
                (
                    [0] => 111
                )

        )

    [1] => Array
        (
            [0] => test_array
            [1] => test_all
            [ts] => Array
                (
                    [0] => 111
                )

        )

    [2] => Array
        (
            [0] => test_array
            [1] => test_all
            [ts] => Array
                (
                    [0] => 111
                )

        )

    [3] => Array
        (
            [0] => test_array
            [1] => test_all
            [ts] => Array
                (
                    [0] => 111
                )

        )

    [4] => Array
        (
            [0] => test_array
            [1] => test_all
            [ts] => Array
                (
                    [0] => 111
                )

        )

)

php

WEB2.0 jackxiang 2008-8-6 12:13
$uid='1';
$my_test=new  TestResult($uid,1,$page,$testlist,10,"SLAVE");
if(!$my_test)
{
  echo "数据库连接有问题!";
}
print_r($testlist);
foreach ($testlist as $values)
{
  $ts_id[]=$values['ts_id'];
}
$ts_id_list = implode(",", $ts_id);//用,好连起来
$obj_friend_test = new friend_test();
$arr_friend_list = $obj_friend_test ->getFriendList($uid , $ts_id_list);

foreach ($testlist as $key=> $values)
{
  $str_ts_id=$values['ts_id'];
  $arr_ts_one = $arr_friend_list['ts'][$str_ts_id];
  $All[$key][]=$values;
  $All[$key][]=$arr_ts_one;
  
  $str_ta_key=$values['ts_id']."-".$values['ta_id'];  
  $arr_ta_one = $arr_friend_list['ta'][$str_ta_key];
  $All[$key][]=$arr_ta_one;
  
}
在前台页面里面,从数据库中选择出来的数据表中文项目,有的是正确的编码显示,有的是错误的乱码,分析后知道,原因可能有3种:

1. mysql_server 的语言环境应该为zh_CN.GBK ,同时数据库的环境变量中要把各个数据库中的字符集设定为utf8;

2. 页面前台输出需要转码

3. 运行客户端的时候,没有设定utf8编码就把数据库表建立,使得数据库表中本身插入的就是乱码

我遇到的起初认为是1;最后发现是3

错误的原因:

正确的解决方法:

解决utf8字符集的问题

mysql -h127.0.0.1 -P3336 -uroot < initTables.sql
mysql -h127.0.0.1 -P3336 -uroot < initMacro.sql
mysql -h127.0.0.1 -P3336 -uroot < initUsers.sql
mysql -h127.0.0.1 -P3336 -uroot < initRoles.sql
mysql -h127.0.0.1 -P3336 -uroot

这样插入的表,本身就是乱码,显示到前台,当然也是乱码了

解决utf8字符集的问题
[aimm@aixuning MySQL]$ mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot < initTables.sql
[aimm@aixuning MySQL]$ mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot < initMacro.sql
[aimm@aixuning MySQL]$ mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot < initUsers.sql
[aimm@aixuning MySQL]$ mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot < initRoles.sql
[aimm@aixuning MySQL]$ mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot

首先应该在建表的时候指定该表是utf-8结构的,然后再进行设置char类型的。
当然你设定为binary的数据格式,不设置utf-8表结构也可以,但是在firefox会出现???你得用php的trim("")去掉???!!mysql5.X
新的空间没有phpMyAdmin,只好自己装一个。上传后不会配置,在网上搜索了一下方法,可是按照别人说的去配置后就会出现"#1045 - Access denied for user 'root'@'localhost' (using password: NO)"这样的情况,自己摸索一阵,于是发现正确进入phpMyAdmin的修改很简单:只需修改$cfg['blowfish_secret'] = '';
  
配置方法:
1、下载phpMyAdmin后,解压,把里面的config.sample.inc.php文件重命名为config.inc.php
2、修改config.inc.php:找到$cfg['blowfish_secret'] = '';在''间填入任意数字和字母就ok了,其他的什么也不用改。因为里面的注释已经说的很清楚了“这是需要cookie的认证加密密码,你必须填补这个cookie的认证!”

我是直接修改libraries目录下的config.default.php(我是在这儿配置数据库链接信息的):
libraries目录下修改: vi config.default.php,找到$cfg['blowfish_secret'] = '';在''间填入任意数字和字母就ok了!
  function getUicIcon($uid,&$uicicon,$size='180')
  {
     $tmpid = $uid%8 + 1;
     $uicicon = "http://portrait".$tmpid.".sinaimg.cn/".$uid."/space/".$size;
     return 1;
  }
getUicIcon(1261163301,$uicicon,180);
echo $uicicon."
";
getUicIcon(1290170007,$uicicon,180);
echo $uicicon;
?>
关于Notice: Undefined variable 的问题解决方法
0
修改
global.php
找到
//error_reporting(0);
修改为:
error_reporting(0);

在每个php头行加入也行。。。
分页: 242/272 第一页 上页 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 下页 最后页 [ 显示模式: 摘要 | 列表 ]