mac brew HOMEBREW_NO_GITHUB_API

 默认分类  mac brew HOMEBREW_NO_GITHUB_API已关闭评论
9月 302017
 

brew install spinx-build 的时候可能会遇到如下错误:

修改 /usr/local/Library/Homebrew/utils.rb 的代码,打印url看看:

莫非访问不了api.github.com  ?

看起来是有返回值的,而且是合法的json,继续看 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb 的代码,发现很可能是httpcode的问题:

发现http code为 422 , 而/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb 遇到 422 是走异常逻辑的,如果能简单修改代码使其认为是正常似乎是可以的; 但是mac 不让修改/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb , root账号也不行

回头看 /usr/local/Library/Homebrew/utils.rb ,发现如下逻辑:

export HOMEBREW_NO_GITHUB_API=1

问题解决

 

其实 spinx-build 是在生成man page的时候用到的,某些情况下,大可不必非要去生成man page

 Posted by at 上午 11:16

php 之 stream编程

 默认分类  php 之 stream编程已关闭评论
9月 192017
 

比较:

  1. 前者更加简单,后者显然复杂了一些
  2. 如果下载很大的文件,前者需要更多的内存,后者不需要
  3. PHP的stream wrapper的概念使得php的stream编程简单了许多
  4. 这两种方式都丢弃了http响应头信息,而对于请求头来讲,都可以通过context参数来设置
 Posted by at 下午 3:58

php curl sftp

 默认分类  php curl sftp已关闭评论
9月 192017
 

首先, 验证php的curl模块是否支持sftp,验证方法:

有结果就是支持,否则就是不支持

 

curl 实现http文件上传的逻辑大致如下:

curl 实现sftp文件上传的方式是否可以如法炮制?

原以为修改下url地址(如: sftp://username:password@phpor.net/test.txt ) 就可以搞定,实际不然:(毕竟POSTFILDS 的内容就不太好解释),正确的姿势如下:

注意:

  1. 其中的 curl_setopt($s, CURLOPT_UPLOAD, true);  或 curl_setopt($s, CURLOPT_PUT, true); 是要有的,且: 换做curl_setopt($s, CURLOPT_PUT, true);  是不行的
  2. CURLOPT_INFILE 是一个文件流,不能是文件名

有时候,ssh2模块使用起来更加方便,但是真的没有的时候,curl也不算太复杂;另外,ssh2 附带注册了一个stream wrapper, 当安装了ssh2模块时,你甚至可以 fopen(“sftp://….”)

 

 Posted by at 下午 3:25