Archive

Archive for the ‘php’ Category

Remove view layer label

August 30th, 2010 陈毓端 No comments
  1. <?php
  2. class view{
  3.  private $extractArray=array();
  4.  function assign($name,$valArray){
  5.    $this->extractArray[$name]=$valArray;
  6.  }
  7.  function display($html,$htmlDir=''){
  8.   global $APPConfig;
  9.   @extract($this->extractArray,EXTR_PREFIX_SAME, "wddx");
  10.   if($htmlDir!=''){
  11.    require_once($htmlDir.'/'.$html);
  12.   }else{
  13.    require_once($APPConfig['viewDir'].'/'.$html);
  14.   }
  15.  }
  16. }
  17. ?>
Categories: php Tags:

php chain model

August 6th, 2010 陈毓端 No comments
<?php
class Chain {
public function edge($val){
echo ‘create ‘.__METHOD__.’: ‘.$val.’ edge’;
}
}
call_user_func_array(array(new Chain,”edge”),array(“two”));
?>
Categories: php Tags:

nginx 小记 (无法获取get post cookie)

August 4th, 2010 陈毓端 No comments

之前给朋友公司架设了nginx phpcgi 应用环境

今天告诉我无法获取get post cookie等

查了php.ini 没用问题

找了半天,原来nginx.conf 

include        fastcgi_params;

被注释了 开启。即可。

Categories: linux, php Tags:

网页正文提取

April 6th, 2010 陈毓端 1 comment

网页正文提取的算法很多也很复杂 当然准确度更有不同

技术难点无非就是在正文除噪

我的实现方法是《基于相似度及密度匹配》

1 网页分块

2 标题相似度匹配

3 求网页平均长度及密度

下图是sina的一篇新闻最终页密度值及相似度波形图:

先放出demo

http://www.woyuw.com/exthtml/

准确度还有待提高

Categories: php, 算法 Tags:

网络抓包(嗅探)/协议分析 工具ethereal

October 14th, 2009 陈毓端 No comments

在常规的开发过程中,如b/s开发 一般的firebug 或其他工具来做网络的请求分析。但是具体的一些内容还是无法全面的获取。如tcp,端口等。

如果在开发基于curl的模拟登录应用,如sns社区常用模块中的获取163 邮箱的好友列表.这将是一款不错的分析工具.
下面是ethereal 分析的截图

QQ的协议地址

2

Categories: php, 其他 Tags:

正则提取之–药品篇

September 24th, 2009 陈毓端 No comments

今天帮一位老乡正则提取抓来的药品数据,以获取药品的属性。因为关键字比较混乱大体包过:’成分’,'适应症’,'注意事项’,'规格’,'药理用途’,'用法用量’等
下面是实现的简单代码,没有做效率优化

  1. <?php
  2. /*
  3.    @Author      陈毓端
  4.     @E-mail     itw1@163.com
  5.    @Homepage    http://blog.woyuw.com
  6. */
  7. try {
  8.  
  9.     $dbh = new PDO("sqlite:./data.db3");
  10.     $mysqldbh = new PDO("mysql:host=localhost;dbname=xxx",'root','xxx');
  11.     $mysqldbh->exec("SET NAMES 'utf8';");
  12. }
  13. catch(PDOException $e)
  14. {
  15.     echo $e->getMessage();
  16. }
  17. function regular ($str,$array){
  18.     $tmp='/';
  19.     foreach($array as $key){
  20.         $tmp.=$key.'(.*)';
  21.     }
  22.     $tmp=$tmp."$/iUs";
  23.     preg_match_all($tmp,$str,$out);
  24.     $newArray=array();
  25.     $i=0;
  26. foreach($out as $key){
  27.      if($i<count($out)-1)
  28.         $newArray[$array[$i]]=$out[$i+1];
  29.         $i++;
  30.     }
  31.    
  32.     return $newArray;
  33. }
  34.  $sql = "SELECT * FROM Content limit  30";
  35.  $values=array();
  36. foreach ($dbh->query($sql) as $row)
  37. { 
  38.     $array=array('成分','适应症','注意事项','规格');
  39.    $value=regular ( $row['otccontent'],$array);
  40.  
  41.    if(!empty($value['成分'])){
  42. array_push($values,$value);
  43.        continue;
  44.    }
  45.    $array=array('成分','药理用途','用法用量');
  46.    $value=regular ( $row['otccontent'],$array);
  47.  
  48.    if(!empty($value['成分'])){
  49.    array_push($values,$value);
  50.        continue;
  51.    }
  52.     $array=array('成分','适应症','不良反应');
  53.    $value=regular ( $row['otccontent'],$array);
  54.  
  55.    if(!empty($value['成分'])){
  56.        array_push($values,$value);
  57.        continue;
  58.    }
  59.     $array=array('别名','外文名','药理作用','适应症','注意事项');
  60.      $value=regular ( $row['otccontent'],$array);
  61.      if(!empty($value['别名'])){
  62.         array_push($values,$value);
  63.         continue;
  64.     }
  65.    $array=array('别名','药理作用','功能与主治','用法与用量','规格');
  66.      $value=regular ( $row['otccontent'],$array);
  67.      if(!empty($value['别名'])){
  68.        array_push($values,$value);
  69.         continue;
  70.     }
  71.     $array=array('别名','外文名','适应症','注意事项');
  72.      $value=regular ( $row['otccontent'],$array);
  73.      if(!empty($value['别名'])){
  74.         array_push($values,$value);
  75.         continue;
  76.     }
  77.    //if(!empty($value['别名'])){
  78.         $array=array('别名','适应症','用量用法','不良反应');
  79.      $value=regular ( $row['otccontent'],$array);
  80.      if(!empty($value['别名'])){
  81.         array_push($values,$value);
  82.         continue;
  83.     }
  84.    
  85.      $array=array('别名','适应症','用量用法','注意事项','规格');
  86.      $value=regular ( $row['otccontent'],$array);
  87.      if(!empty($value['别名'])){
  88.         array_push($values,$value);
  89.         continue;
  90.     }
  91.         $array=array('别名','适应症');
  92.      $value=regular ( $row['otccontent'],$array);
  93.      if(!empty($value['别名'])){
  94.         array_push($values,$value);
  95.         continue;
  96.     }
  97.  
  98.  
  99. }
  100.  print_r($values);
  101. ?>
Categories: php Tags:

从xdebug 看我 CYDPHP Framework 的执行逻辑

September 21st, 2009 陈毓端 4 comments

e69caae591bde5908d8

Categories: php Tags:

curl 解决 ajax 的php 页面 post(等跳转) 问题

July 16th, 2009 陈毓端 No comments

昨天 晚上 一个朋友告诉我说一个 游戏充值接口的用户验证采用ajax方法,问题是对方接口需要post方式,而且是跳转的,因为ajax机制的约束不允许php内部又跳转.这样不能获得返回值.我建议他直接在ajax端采用post,他嫌麻烦. 那成,今天早上就用curl 写了个 不跳转的模拟post.

简单代码如下:

  1. <script>
  2. $.ajax({url:'http://xxx.xxx.com/sendpost.php',
  3. type: 'GET',
  4. dataType: 'json',
  5. timeout: 3000,
  6. cache:false,
  7. error: function(){
  8. alert("系统错误...");
  9.  
  10. },
  11. success: function(data){
  12. $("#value").html(data.log);
  13.  
  14. }
  15. });
  16. </script>

sendpost.php

  1. <?php
  2. $url = 'http://xxx.xxx.com/work.php'; //psot的目标页面
  3. $postDate ='user='."cyd&amp;age=25"; //post 参数
  4. $curlObj = curl_init() ;
  5. curl_setopt($curlObj, CURLOPT_URL,$url) ;
  6. curl_setopt($curlObj, CURLOPT_POSTFIELDS,$postDate) ;
  7. $reruenValue = curl_exec($curlObj) ;
  8. curl_close($curlObj) ;
  9. ?>

work.php

  1. <?php
  2. echo json_encode(array('success'=>'false','log'=>implode(",",$_POST))); //我写的一个简单的json 格式的返回值.
  3. ?>
Categories: php Tags: , ,

php namespace(命名空间)

July 2nd, 2009 陈毓端 No comments

早上从新编译了本地php环境,把php更新到了5.3.0

下面简单的命名空间小例子:

/*
php namsespace
Request : php>=5.3.0
File Name : global.php
Author : cyd
E-mail : thisduan@gmail.com
*/
namespace china\beijing;
class city{
public static function tianAnMen(){
return “中国的心脏”;
}
public static function zhongShanglu(){
return “这条中山路在北京”;
}
}
?>
/*
php namsespace
Request : php>=5.3.0
File Name : index.php
Author : cyd
E-mail : thisduan@gmail.com
*/
namespace china\beijing\trip;
header(‘Content-Type: text/html; charset=utf-8′);

include_once(“global.php”);
class city{
public static function tianAnMen(){
return “我在这里就不中国的心脏,我是旅游景点。”;
}
public static function yiHeYuan(){
return “皇家园林”;
}
}

echo \china\beijing\city::tianAnMen();
echo \china\beijing\trip\city::yiHeYuan();
echo \china\beijing\trip\city::tianAnMen();

?>

Categories: php Tags: ,

安装 MagickWand

May 20th, 2009 陈毓端 No comments

今天安装MagickWand for php  编译老是如下错误:

MagickWand-config in default path... configure: error: Cannot locate configuration program MagickWand-config

打开源码包:

vi INSTALL

发现里面的安装要求:

MagickWand Extension for PHP :: Installation Instructions

** REQUIRED ** ImageMagick version :: 6.3.5-9
Last-known-good ImageMagick version :: 6.3.5-9

天那最低版本 要求在version :: 6.3.5-9

[root@localhost MagickWandForPHP-1.0.8]# Wand-config --version

我之前安装的版本是 6.2.7 太低了 重新安装个高版本的。

wget  http://se.aminet.net/pub/multimedia/graphics/ImageMagick/ImageMagick-6.5.2-6.tar.gz

tar zvxf ImageMagick-6.5.2-6.tar.gzcd ImageMagick-6.5.2-6

./configure

make && make install

好了 再安装MagickWandForPHP-1.0.8

wget http://www.magickwand.org/download/php/MagickWandForPHP-1.0.8.tar.gztar zvxf MagickWandForPHP-1.0.8

cd MagickWandForPHP-1.0.8
/usr/local/php5/bin/phpize

./configure --with-php-config=/usr/local/php5/bin/php-config

make && make install

vi /usr/local/php5/etc/php.ini

增加 :extension=magickwand.so

重启 php-cig 和 nginx

查看 phpinfo
19

安装完毕

Categories: linux, php Tags: