问题提出:
        做php程序,往往有可能打印一些东西出来,但是涉及到页面的显示,往往打印到后台日志文件中,有的专门有日志函数,为了方便,我就直接用了php5的file_put_contents()函数,通过tail -f /tmp/feedContent.txt. 但是,发现出现:tail: /tmp/feedContent.txt: file truncated 的情况!

估计问题:
     查了下google,发现:http://topic.csdn.net/u/20080201/09/2f55ff69-96f9-4960-a6d5-14aa2585dafe.html  这个文章!
    看后突然想起我的用法是:

             file_put_contents("/tmp/feedContent.txt",$record_info);
            $record_content_array = urlencode(serialize($record_info));
            $flag = $myfrd->sendSnsFeeds($uid, DEF_RECORD_FEED_TYPE,$record_content_array,DEF_RECORD_FEED_SETTING);
            file_put_contents("/tmp/feedContent.txt",$record_content_array);


如果文件已存在,原有文件被重写。写日志的程序估计不是简单的追加方式有可能还对文件进行了某些特殊处理,导致tail处理异常
估计是每次都重新写造成。改为:


             file_put_contents("/tmp/feedContent.txt",$record_info,FILE_APPEND);
            $record_content_array = urlencode(serialize($record_info));
            $flag = $myfrd->sendSnsFeeds($uid, DEF_RECORD_FEED_TYPE,$record_content_array,DEF_RECORD_FEED_SETTING);
            file_put_contents("/tmp/feedContent.txt",$record_content_array,FILE_APPEND);


问题得到解决,再没有提示:
tail: /tmp/feedContent.txt: file truncated!具体查看:FILE_APPEND和tail -f的机制即可。。。
用vi模拟出现tail -f *.txt  出现tail: /tmp/feedContent.txt: file truncated 这个行为:
最后:
用vi 打开:

vi  /tmp/feedContent.txt

命令行输入:
g/^/d  
清空里面内容,然后wq!保存


tail -f /tmp/feedContent.txt


出现:tail: /tmp/feedContent.txt: file truncated

问题得证!





    

往往在取得用户uid后,通过函数取得姓名,然后组合为数组输出拱smarty使用的示例!
<?php
$arry_all[2] =array("uid"=>001,"sex"=>"man");
$arry_all[3] =array("uid"=>001,"sex"=>"man");
$arry_all[4] =array("uid"=>001,"sex"=>"man");
$arry_all[5] =array("uid"=>001,"sex"=>"man");
$arry_all[6] =array("uid"=>001,"sex"=>"man");
$name_array = array(array("name0"=>"jianxin","name1"=>"zhujianxin"),"zaifeng","xichen","xiangdong","wangfang");
$i=0;
foreach($arry_all as $k=>$v)
{

    $arry_all[$k]['name']=$name_array[$i];
    $i=$i+1;  
  
  
}
print_r($arry_all);
?>
好像是由于我的curl_post有些问题,然后用到了如下函数的post:
我的curl_post:
  function curl_post($url, $content)
  {

    $str_url = $url;
    $str_post_data = $content;
    $ch_curl = curl_init ();
    curl_setopt ( $ch_curl, CURLOPT_TIMEOUT, 3 );
    curl_setopt ( $ch_curl, CURLOPT_HEADER, false );
    curl_setopt ( $ch_curl, CURLOPT_POST, 1 );
    curl_setopt ( $ch_curl, CURLOPT_RETURNTRANSFER, true );
    curl_setopt ( $ch_curl, CURLOPT_URL, $str_url );
    curl_setopt ( $ch_curl, CURLOPT_POSTFIELDS, $str_post_data );
    $str_return = curl_exec ( $ch_curl );

    if ($str_return === false)
    return false;
    curl_close ( $ch_curl );
    return $str_return;
  }


首先贴上生产环境的代码段【建鑫编写】:
<?php
function request_post($url,$data,&$result)
{
    $ctx = array (
        'http' => array (
            'method' => 'POST',
            'header'=> "Content-type: application/x-www-form-urlencoded\r\n"
                . "Content-Length: " . strlen($data) . "\r\n",
            'content' => $data
            )
        );
       $context = stream_context_create($ctx);
      $result = file_get_contents($url,false,$context);
    if ($result === false){
      return false;
    }
    return true;
}
request_post("http://localhost","aa=aaa",$result);
echo $result;
?>

不过我对这个哥们用到ksort函数的file_get_contents()觉得不错:
function Post($url, $post = null)
{
    $context = array();

    if (is_array($post))
    {
        ksort($post);

        $context['http'] = array
        (
            'method' => 'POST',
            'content' => http_build_query($post, '', '&'),
        );
    }

    return file_get_contents($url, false, stream_context_create($context));
}

$data = array
(
    'name' => 'test',
    'email' => 'test@gmail.com',
    'submit' => 'submit',
);

echo Post('http://www.url.com/to/submit.php', $data);




阅读全文
http://www.cnblogs.com/wanghao72214/archive/2009/02/05/1384701.html
首页都有:
http://www.51cto.com/
http://www.cnblogs.com


写这篇文章之前,我也特意跟以前的同事做了一些交流,在此感谢sina xiangdong、kingsoft zhangyan和yahoo luke。另外,还有网上的朋友对我上一节的文章发表了许多有建设性评论,在这里一并感谢。。。。         xiangdong就是俺啊。。嘻嘻!
php.ini可配置,只能是选取一种方式(cookie和get方式的传递),php以前session机制就是通过get参数方式(每次得编程解析这个get的参数值),为此get方式没大有人用了!
Get 方式:
好像在ver4以后改为cookie模式了,把php ini中session 处理方式改为 get参数方式!
cookie方式:
Set-Cookie: PHPSESSID=bmmc3mfc94ncdr15ujitjogma3; path=/   session_id=bmmc3mfc94ncdr15ujitjogma3 (加密串)
这是服务器向客户端浏览器写一个cookie,名字是PHPSESSID,值是bmmc3mfc94ncdr15ujitjogma3,这个值实际就是所谓的session_id。
如果禁用了cookie,seesion也就失效了。。。如果客户端没有禁用 Cookie,则 Cookie 在启动 Session 会话的时候扮演的是存储 Session ID 和 Session 生存期的角色!!!
cookie处理session id等参看:http://www.xiangdong.org/blog/post/1608/
众所周知,http协议是一个无状态协议,简单来说就是,web服务器是不知道现在连接上来的人到底是哪个人,为了满足选择性发送信息的需求,在http的基础上做了很多扩展来达到这个目的,如数字签名、cookie、session等。
web服务器或者web程序如何能够知道现在连接上来的是谁?要解决这个问题,首先需要在服务器端和客户端建立一一对应关系,下边我通过抓取http的内容来说明这种对应关系是如何建立的。
我使用的是一个叫做httplook的http包嗅探工具,然后在本地web服务器的根目录下建立一个叫test.php的文件,地址是:http://localhost/test.php,一切就绪以后我通过浏览器反复打开这个页面。
阅读全文
Mysql Explain 详解


一.语法

explain < table_name >

例如: explain select * from t3 where id=3952602;

二.explain输出解释

+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
| id | select_type | table | type  | possible_keys     | key     | key_len | ref   | rows | Extra |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+

1.id
  我的理解是SQL执行的顺利的标识,SQL从大到小的执行.

例如:
mysql> explain select * from (select * from ( select * from t3 where id=3952602) a) b;
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| id | select_type | table      | type   | possible_keys     | key     | key_len | ref  | rows | Extra |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
|  1 | PRIMARY     | | system | NULL              | NULL    | NULL    | NULL |    1 |       |
|  2 | DERIVED     | | system | NULL              | NULL    | NULL    | NULL |    1 |       |
|  3 | DERIVED     | t3         | const  | PRIMARY,idx_t3_id | PRIMARY | 4       |      |    1 |       |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+

很显然这条SQL是从里向外的执行,就是从id=3 向上执行.阅读全文
$html_stirng_in  = <<<HTML
<link rel="stylesheet" href="http://spacejs.sinajs.cn/view/js/suggest/suggest.css" type="text/css"/>
<a href="www.xiangdong.org">向东</a>
HTML;
$aaa = strip_tags(($html_stirng_in));
echo $aaa;



<?php echo <<<EOF  
   <li><img src="images/name.gif" align="absmiddle"/>&nbsp;&nbsp;$CUser_getUserByQQ_Item['FNick']</li>
   <li><img src="images/ticket.gif" align="absmiddle"/>&nbsp;&nbsp;$CUser_getUserByQQ_Item['FVoteCount']</li>
   <li><img src="images/birthday.gif" align="absmiddle"/>&nbsp;&nbsp;$CUser_getUserByQQ_Item['FBirthday']</li>
   <li><img src="images/height.gif" align="absmiddle"/>&nbsp;&nbsp;$CUser_getUserByQQ_Item['FHeight']</li>
   <li><img src="images/from.gif" align="absmiddle"/>&nbsp;&nbsp;$CUser_getUserByQQ_Item['FCity']</li>
   <li><img src="images/blog.gif" align="absmiddle"/>&nbsp;&nbsp;$CUser_getUserByQQ_Item['FHomePage']</li>
   <li><input type="submit" name="Submit" value=" "  class="votebut"/>&nbsp;&nbsp;<input type="submit" name="Submit" value=" " class="applybut" />
   </li>
EOF;
?>
--post-file=文件 使用 POST 方法,发送指定文件中的内容。
剛剛看了一下 man wget, --post-file 參數並不是用來直接上傳檔案用的啦
必需要將上傳的資料先製作好放在檔案裡, 然後才用這個參數上傳
所以當我var dump(isset($_FILES))就判斷出$_FILES內有資料。但我現在就卡在我根本不知$_FILES內的資料內容為何
我有試過ricky大的建議用print_r($_FILES);阅读全文
strip_tags
去除html标签
This strips out markup tags, basically anything between < and >.

去除<和>标签,包括在<和>之间的任何内容.

Example 5-20. strip_tags
Smarty手册范例 5-20.去除Html标签

index.php:

$smarty = new Smarty;
$smarty->assign('articleTitle', "Blind Woman Gets New Kidney from Dad she Hasn't Seen in years.");
$smarty->display('index.tpl');

index.tpl:

{$articleTitle}
{$articleTitle|strip_tags}

输出结果:

Blind Woman Gets New Kidney from Dad she Hasn't Seen in years.
Blind Woman Gets New Kidney from Dad she Hasn't Seen in years.


返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。

<?php
    function addslashes_array(&$ar)
    {
      if(is_array($ar)) {
        foreach($ar as $key => $ar_sub) {
          //$this->addslashes_array($ar[$key]);
          addslashes_array($ar[$key]);
        }
      } else if(is_string($ar)) {
        $ar = addslashes($ar);
      }
    }
?>


<?php
  //数组情况
  $addslashes_array = array("name"=>"xiangdong2","sex"=>"man","age"=>"24","address"=>"Is your name O'reilly?");
  addslashes_array($addslashes_array);
  var_dump($addslashes_array);
  //字符串情况
  $addslashes_string = "Is your name O'reilly?";
  addslashes($addslashes_array);
  echo $addslashes_string;  
?>


原始例子:
$str = "Is your name O'reilly?";

// 输出:Is your name O\'reilly?
echo addslashes($str);
?>
NOKIA E71手机今年可谓是塞班平台最火的手机之一,但是很多用户在用了之后却遇到了E71拔掉数据线后无法识别储存卡的问题,下面笔者为机油们提供一些解决此类问题的办法。

    小编在实际操作中发现,将软件、多媒体资料、游戏、电子书等文件传至手机里的途径,常用的不外乎这么几种:

    1、手机上网直接下载
    2、蓝牙适配器
    3、数据线
    4、读卡器
    5、红外(此方法已基本淘汰)阅读全文
is [not] odd是否为奇,
$a is not odd by $b即($a / $b) % 2 != 0 示例:
{if $smarty.section.outer.index is odd by 2}
odd英文是奇数的意思,也就是说这个能被2整除:

以上摘自smarty自己的demon。而odd则参考如下:
http://zjsky1989.blog.163.com/blog/static/8158784820134632416404/

{if $smarty.section.outer.index is odd by 1}

0 -1 * John
1 -2 . Mary
2 -3 * James
3 -4 . Henry
4 -5 * Tom
5 -6 . Hello
0/1=0  非奇非偶,执行else项

1/1=1  奇数,执行if项

2/1=2  偶数,执行else项

3/1=3  奇数,执行if项

4/1=4 偶数,执行else项

5/1=5 奇数,执行if项
来自:http://www.ithao123.cn/content-4326244.html
—————————————————————————————————————————

eq相等,
f7Y"Y f3m @,V+Z }4X0 ne、neq不相等,
7C E z R S8P t,i:@ ^0 gt大于,阅读全文
http://user.qzone.qq.com/282189854/?url=http%3A//photo.qq.com/tips_jump.htm%23uin%3D282189854%26albumid%3D94b907f9-782d-4b1c-95be-99e206b03a79%26photoid%3DMztKIZvWo0HxuZ2cWXhbpvuivwsDBM4AAA!!&ADUIN=305664325&ADSESSION=1233620012&ADTAG=CLIENT.QQ.1855_QQUrlReportBlankZone.0
手机在待机情况下输入*7638#进如工程模式然后选择第二项硬件测试进去之后选择NANV格式第一,第二项应该就OK了
试下把

这歌叫哪里有我的家
MP3下载:
http://202.108.23.172/m?ct=134217728&tn=baidusg,影视插曲 哪里有我的家&word=mp3,http://www.beijing101.com/pts/song/影视插曲/9fbzIwgGBQrm9u8GNQ$$.mp3,,[%C4%C4%C0%EF%D3%D0%CE%D2%B5%C4%BC%D2]&si=;;;;0;;0&lm=16777216
答案:
$json2array = json_decode($json,TRUE);


加上True即可!
<?php
$json = "{\"code\":\"A00006\",
\"data\":
  {
    \" uid\":
        {
              \"relation\":\"0\",  
              \"gid\": \"11\",
              \"stat\" : \"\"
        }
  }
}";

$json2array = json_decode($json);
//$json2array = json_decode($json,TRUE);//这样foreach就没有该问题了
print_r($json2array);

?>


结果:
stdClass Object
(
    [code] => A00006
    [data] => stdClass Object
        (
            [ uid] => stdClass Object
                (
                    [relation] => 0
                    [gid] => 11
                    [stat] =>
                )

        )

)


加上True后:

Array
(
    [code] => A00006
    [data] => Array
        (
            [ uid] => Array
                (
                    [relation] => 0
                    [gid] => 11
                    [stat] =>
                )

        )

)
参看:http://www.maycode.com/index.php/hotspot/32-web20/587-json.html
smarty 中foreach中iteration变量值就是当前循环次数
例子:
<code>
{foreach key=key item=item from=$contact name=name}
{$key}: {$item}:{$smarty.foreach.name.iteration}<br>
{/foreach>
</code>

注意:得加上:name=name   {$smarty.foreach.name.iteration}  依次循环会显示:1,2,3,4...
详细的例子如下:
HTML:


<html>
<head>
  <title><{$title}></title>
</head>

<body>

<{$content}>
<{foreach from=$array item=foreach name=name}>
<{$foreach.newsID}><br>
<{$foreach.newsTitle}>
<h1>
<{$smarty.foreach.name.iteration}></h1><br>

<{/foreach}>

</body>

</html>

PHP:


<?php
require "main.php";
$tpl->template_dir = "./aaa";
$array[] = array("newsID"=>1, "newsTitle"=>"第1条新闻");
$array[] = array("newsID"=>2, "newsTitle"=>"第2条新闻");
$array[] = array("newsID"=>3, "newsTitle"=>"第3条新闻");
$array[] = array("newsID"=>4, "newsTitle"=>"第4条新闻");
$array[] = array("newsID"=>5, "newsTitle"=>"第5条新闻");
$array[] = array("newsID"=>6, "newsTitle"=>"第6条新闻");
$tpl -> assign("array",$array);
$tpl -> assign("title","测试标题");
$tpl -> assign("content","Hello,World");
$tpl -> display("test.htm");
?>

main.php


<?php
include   "../drivers/smarty/Smarty.class.php";
$tpl= new Smarty();
$tpl->left_delimiter = "<{";
$tpl->right_delimiter = "}>";

?>
分页: 243/327 第一页 上页 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 下页 最后页 [ 显示模式: 摘要 | 列表 ]