首页
关于
Search
1
给你10个市场数据调研报告的免费下载网站!以后竞品数据就从这里找!
183 阅读
2
php接口优化 使用curl_multi_init批量请求
144 阅读
3
《从菜鸟到大师之路 ElasticSearch 篇》
107 阅读
4
2024年备考系统架构设计师
104 阅读
5
PHP 文件I/O
92 阅读
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
登录
Search
标签搜索
php函数
php语法
性能优化
安全
错误和异常处理
问题
vue
Composer
Session
缓存
框架
Swoole
api
并发
异步
正则表达式
php-fpm
mysql 索引
开发规范
协程
dafenqi
累计撰写
786
篇文章
累计收到
31
条评论
首页
栏目
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
副业
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
页面
关于
搜索到
560
篇与
的结果
2023-08-08
安装 redis mongodb memcached
centos 6.5 安装 redis 3.0 及php redis扩展centos 6.5 安装 mongodb3.0 及 php mongo扩展基于libmemcached,php扩展memcached的安装
2023年08月08日
20 阅读
0 评论
0 点赞
2023-08-08
php mongodb 操作类
php mongodb 操作类<?php /** * php mongodb 操作类,主要用于存取图片 * * @package MongoDriver * @version $id$ * @copyright 2015 * @author Lenix * @license PHP Version 3.0 {@link http://www.php.net/license/3_0.txt} */ class MongoDriver { protected $connection;//连接 protected $db;//数据库 protected $collection;//集合 /** * __construct * 连接数据库,并创建或选择数据库与集合 * * @param string $server * @param string $db * @param string $coll * @access public * @return void * @example $server:mongodb://192.168.6.76:27017 */ public function __construct($server,$db,$coll) { try { $this->connection=new MongoClient($server);//链接到远程服务器,使用自定义的端口 } catch (MongoConnectionException $e) { return $e->getMessage(); } $this->db = $this->connection->$db; //创建 or 选择数据库 $this->collection = $this->db->$coll;//选择创建集合 } /** * insert 插入一条数据 * * @param array $data * @access public * @return void */ public function insert(array $data) { $this->collection->insert($data); } /** * insertBin 把二进制数据插入数据库 * * @param array $param 查询条件数组 * @param bin $data * @access public * @return void * [example] * $data=file_get_contents("images/photo.jpg"); * $param = array( "filename" => "hello.jpg", "field" => "pic",//字段名 ); [/example] */ public function insertBin(array $param=array(),$data=null) { $this->collection && $count=$this->collection->count($param); if(empty($count) && $this->collection){ $field=$param['field']; $param[$field]=new MongoBinData($data, MongoBinData::GENERIC); try{ $this->collection->save($param); } catch(MongoException $e) { echo $e->getMessage(); } catch(MongoCursorException $e) { echo $e->getMessage(); } catch(MongoCursorTimeoutException $e) { echo $e->getMessage(); } }else{ return 'the file already exists';//不能重复插入同名文件 } } /** * findOne 获取单条记录 * * @param string $field 字段名 * @access public * @return void */ public function findOne($field) { $document = $this->collection->findOne(); if($document) { return $document[$field]->bin;//输出二进制 }else { return false; } } /** * find 获取多条记录 * * @access public * @return array */ public function find() { $cursor=$this->collection->find(); $v=[]; foreach ( $cursor as $id => $value ) { $v[$id]=$value; } return $v; } /** * count 统计集合记录数 * * @param array $query 查询条件 * @access public * @return void * @example */ public function count(array $query=array()) { return $this->collection->count($query); } /** * query 条件查询 * * @param array $query 查询条件 * @access public * @return void * @example $query = array( 'filename' => 'hello.jpg','field'=>'pic' ); */ public function query(array $query) { $field=$query['field']; if($this->collection) { $cursor = $this->collection->find($query); $v=[]; while ( $cursor->hasNext() ) { $v[]=$cursor->getNext()[$field]->bin; } return $v; } } /** * remove 条件删除 * * @param array $query * @access public * @return array * @example $query = array( 'filename' => 'hello.jpg' ); */ public function remove(array $query) { return $this->collection->remove($query); } /** * drop 删除集合 * * @access public * @return void */ public function drop() { $this->collection->drop(); } /** * addIndex 添加索引 * * @param array $keys * @access public * @return void * @example $keys=array('x' => 1); */ public function addIndex(array $keys) { $this->collection->createIndex($keys); } /** * __destruct 关闭连接 * * @access protected * @return void */ function __destruct() { //$this->connection->close($this->collection);//此行一般不需要 $this->connection=null; $this->collection=null; $this->db=null; } } ?> 用法 <?php include 'mongodb.class.php'; //使用方法 $mongo=new MongoDriver('mongodb://192.168.6.76:27017','wenestthumb','thumb'); //insert $data=file_get_contents("images/photo.jpg"); $profile = array( "filename" => "phpto.jpg", "field" => "pic", ); //$mongo->insertBin($profile,$data); $abc=$mongo->find(); var_dump($abc); exit; //output //header('Content-Type: image/jpg'); //$one= $mongo->findOne('pic'); //echo $one; $query = array( 'filename' => 'phpto.jpg', 'field'=>'pic', ); $query22 = array( 'filenameaa' => 'phptsfao.jpg', ); $af=$mongo->remove($query22); var_dump($af); //echo $mongo->count(array()); exit; $pics=$mongo->query($query); echo $pics[0]; ?>
2023年08月08日
14 阅读
0 评论
0 点赞
2023-08-08
tsf —— 来自腾讯的 PHP 协程解决方案
tsf —— 来自腾讯的 PHP 协程解决方案tsf (Tencent Server Framework) 是腾讯公司推出的 PHP 协程方案,基于 Swoole+PHP Generator 实现的 Coroutine。Tencent Server Framework 是快速服务器部署框架,PHP 现在可以像 Golang 一样用协程实现高并发服务器,同时支持同步阻塞,异步非阻塞回调,协程这 3 种 IO 模型。主要特性:基于 PHP,相比 C++ 开发更高效基于 Swoole 扩展,强大的异步 IO支持 PHP coroutine支持服务器监控器和提供接口要求:php5.5+Swoole1.7.18+linux,OS X
2023年08月08日
11 阅读
0 评论
0 点赞
2023-08-08
php如何发起POST DELETE GET POST 请求
php如何发起POST DELETE GET POST 请求关于POST,DELETE,GET,POST请求get:是用来取得数据。其要传递过的信息是拼在url后面,因为其功能使然,有长度的限制post:是用来上传数据。要上传的数据放在request的head里。没有长度限制。主要是用于增加操作put:也是用来上传数据。但是一般是用在具体的资源上。主要用于修改操作delete:用来删除某一具体的资源上。发起POST DELETE GET POST 请求通用类<?php class commonFunction{ function callInterfaceCommon($URL,$type,$params,$headers){ $ch = curl_init(); $timeout = 5; curl_setopt ($ch, CURLOPT_URL, $URL); //发贴地址 if($headers!=""){ curl_setopt ($ch, CURLOPT_HTTPHEADER, $headers); }else { curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type: text/json')); } curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); switch ($type){ case "GET" : curl_setopt($ch, CURLOPT_HTTPGET, true);break; case "POST": curl_setopt($ch, CURLOPT_POST,true); curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break; case "PUT" : curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break; case "DELETE":curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break; } $file_contents = curl_exec($ch);//获得返回值 return $file_contents; curl_close($ch); } } ?>调用:$params="{user:\"admin\",pwd:\"admin\"}"; $headers=array('Content-type: text/json',"id: $ID","key:$Key"); $url=$GLOBALS["serviceUrl"]."/user"; $strResult= spClass("commonFunction")->callInterfaceCommon($url,"PUT",$params,$headers);$headers:如果参数值需要header传,可以以数组格式传递
2023年08月08日
17 阅读
0 评论
0 点赞
2023-08-08
PHP curl 实现RESTful PUT DELETE 实例
客户端client.php<?php//PUT$curl_handle = curl_init ();// Set default options.curl_setopt ( $curl_handle, CURLOPT_URL, 'http://my.focus.cn/test/socket.php');curl_setopt ( $curl_handle, CURLOPT_FILETIME, true );curl_setopt ( $curl_handle, CURLOPT_FRESH_CONNECT, false );curl_setopt ( $curl_handle, CURLOPT_HEADER, true );curl_setopt ( $curl_handle, CURLOPT_RETURNTRANSFER, true );curl_setopt ( $curl_handle, CURLOPT_TIMEOUT, 5184000 );curl_setopt ( $curl_handle, CURLOPT_CONNECTTIMEOUT, 120 );curl_setopt ( $curl_handle, CURLOPT_NOSIGNAL, true );curl_setopt ( $curl_handle, CURLOPT_HEADER, true );curl_setopt ( $curl_handle, CURLOPT_CUSTOMREQUEST, 'PUT' );$aHeader[] = "Content-Type:text/xml;charset=UTF-8";$aHeader[] = "x-bs-ad:private";curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $aHeader);$file = 'client.php';$file_size = filesize($file);$h = fopen($file,'r');curl_setopt ( $curl_handle, CURLOPT_INFILESIZE, $file_size);curl_setopt ( $curl_handle, CURLOPT_INFILE, $h);curl_setopt ( $curl_handle, CURLOPT_UPLOAD, true );$ret = curl_exec ( $curl_handle );print_r($ret);?>DELETE 只要将$curl_handle = curl_init ();// Set default options.curl_setopt ( $curl_handle, CURLOPT_URL, 'http://my.focus.cn/test/socket.php?file=socket.txt');curl_setopt ( $curl_handle, CURLOPT_FILETIME, true );curl_setopt ( $curl_handle, CURLOPT_FRESH_CONNECT, false );curl_setopt ( $curl_handle, CURLOPT_HEADER, true );curl_setopt ( $curl_handle, CURLOPT_RETURNTRANSFER, true );curl_setopt ( $curl_handle, CURLOPT_TIMEOUT, 5184000 );curl_setopt ( $curl_handle, CURLOPT_CONNECTTIMEOUT, 120 );curl_setopt ( $curl_handle, CURLOPT_NOSIGNAL, true );curl_setopt ( $curl_handle, CURLOPT_CUSTOMREQUEST, 'DELETE' );$ret = curl_exec ( $curl_handle );服务端server.php<?php$raw_post_data = file_get_contents('php://input', 'r');$method = $_SERVER['REQUEST_METHOD'];if('PUT' == $method){$headers = apache_request_headers();file_put_contents('socket.txt',$raw_post_data.print_r($headers,true));}else if('DELETE'==$method){unlink($_GET['file']);}echo '<?xml version="1.0" encoding="UTF-8"?>OK';
2023年08月08日
17 阅读
0 评论
0 点赞
1
...
79
80
81
...
112