QQ 授权跳过解决方法

最近在处理相关登录授权时发现这么一个问题,qq在经过第几次的授权操作之后,后续的操作会直接进行默认处理。这样导致一个问题,如果用户不小心勾了不分享到空间,腾讯微薄什么的。这样在论坛里的操作都会提示成网络繁忙。

经调试,系统的返回是该用户没有授权。导致一连串的奇怪问题和投诉。

解决方式。

直接修改:

http://connect.qq.com/toc/auth_manager?from=auth

QQ空间>(齿轮图)->空间设置->QQ登录

这里将给默认操作了的授权进行删除,再重新绑定进行设置就好。

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

 

zend studio 优化

http://bbs.phpchina.com/thread-220187-1-1.html

相关的启动项直接修改方式,只针对Zend Studio

Help>Welcome>右边的相关组件,选择自己需要的。或者只开启php,其它的都关了。

我的配置,软件5秒开启,一秒退出

-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
-showlocation
-name
Zend Studio
-vmargs
-Xms512M
-Xmx1024M
-XX:MaxPermSize=256m
-DGIT_SSL_NO_VERIFY=true
-Dsvnkit.http.sslProtocols=SSLv3

2.删除workspace,再重新引入项目

获取文件格式

通过字节识别文件

http://blog.sina.com.cn/s/blog_62b832910100vmbq.html

通过相关文件格式,获取文件实际类型

YII的代码

class FileTools{
	public static function getFileType($file,&$fileType,&$mime){
		$bin = substr($file,0,2);
		$strInfo = @unpack("C2chars", $bin);
		$typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
		$fileType = '';
		switch ($typeCode)
		{
			case 7790:
				$fileType = 'exe';
				return false;
				break;
			case 7784:
				$fileType = 'midi';
				return false;
				break;
			case 8297:
				$fileType = 'rar';
				return false;
				break;
			case 255216:
				$fileType = 'jpg';
				$mime = 'image/jpeg';
				return true;
				break;
			case 7173:
				$fileType = 'gif';
				$mime = 'image/gif';
				return true;
				break;
			case 6677:
				$fileType = 'bmp';
				$mime = 'image/bmp';
				return true;
				break;
			case 13780:
				$fileType = 'png';
				$mime = 'image/png';
				return true;
				break;
			default:
				return false;
				break;
		}
		return false;
	}
	public static function getMimeType($file,$magicFile=null,$checkExtension=true)
	{
		if(function_exists('finfo_open'))
		{
			$options=defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME;
			$info=$magicFile===null ? finfo_open($options) : finfo_open($options,$magicFile);

			if($info && ($result=finfo_file($info,$file))!==false)
				return $result;
		}

		if(function_exists('mime_content_type') && ($result=mime_content_type($file))!==false)
			return $result;
		return $checkExtension ? self::getMimeTypeByExtension($file) : null;
	}
	/**
	 * Determines the MIME type based on the extension name of the specified file.
	 * This method will use a local map between extension name and MIME type.
	 * @param string $file the file name.
	 * @param string $magicFile the path of the file that contains all available MIME type information.
	 * If this is not set, the default 'system.utils.mimeTypes' file will be used.
	 * This parameter has been available since version 1.1.3.
	 * @return string the MIME type. Null is returned if the MIME type cannot be determined.
	 */
	public static function getMimeTypeByExtension($file,$magicFile=null)
	{
		static $extensions;
		if($extensions===null)
			$extensions=$magicFile===null ? require('mimeTypes.php') : $magicFile;
		if(($ext=pathinfo($file, PATHINFO_EXTENSION))!=='')
		{
			$ext=strtolower($ext);
			if(isset($extensions[$ext]))
				return $extensions[$ext];
		}
		return null;
	}
}

 

实现google查询 需要外国服务器支持。

唉………苦逼

CURL版本

<base href="http://www.google.com.hk/">
<meta charset='utf-8'>
<?php
/**
 *
 * @author caihaibin
 */
@header ( "Content-Type: text/html;charset=utf-8" );
if (@$_REQUEST ['q']) {
	$data = urlencode ( $_REQUEST ['q'] );
	$url = "http://www.google.com.hk/search?hl=zh-CN&source=hp&q={$data}&btnG=Google+%E6%90%9C%E7%B4%A2&meta=lr%3Dlang_zh-CN&aq=f&aqi=&aql=&oq=&gs_rfai=";
} else {
	$url = "http://www.google.com.hk/";
}
$cookie_file = dirname ( __FILE__ ) . "/temp/google.txt";
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_USERAGENT, $_SERVER ['HTTP_USER_AGENT'] );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 );
curl_setopt ( $ch, CURLOPT_COOKIEJAR, $cookie_file );
$contents = curl_exec ( $ch );
curl_close ( $ch );
$contents = preg_replace ( '/<form action="/search" id="tsf" method="GET"/', '<form action="http://' . $_SERVER ['HTTP_HOST'] . $_SERVER ['SCRIPT_NAME'] . '?caihaibin=ok" id="tsf" method="POST"', $contents );
echo $contents;
?>

HttpClient.class.php版本

<base href="http://www.google.com.hk/">
<?php
require 'HttpClient.class.php';
header ( "Content-Type: text/html;charset=utf-8" );
function test_cb($res, $req, $key) {
	// echo $res->body;
	// echo '[' . $key . '] url: ' . $req->getUrl() . ', ';
	// echo 'time cost: ' . $res->timeCost . ', ';
	// echo 'size: ' . number_format(strlen($res->body)) . "<Br>";
}

$http = new HttpClient ( 'test_cb' );
// 全部 URL 抓取完毕时一并返回,传入单个 URL 或数组组成的多个 URL
// 第一次请求可能因为域名解析等原因较慢
// 可以自行构造 HttpRequest 直接用 IP请求更快
if (@$_REQUEST ['q']) {
	$data = urlencode ( $_REQUEST ['q'] );
	$url = "http://www.google.com.hk/search?hl=zh-CN&source=hp&q={$data}&btnG=Google+%E6%90%9C%E7%B4%A2&meta=lr%3Dlang_zh-CN&aq=f&aqi=&aql=&oq=&gs_rfai=";
} else {
	$url = "http://www.google.com.hk/";
}
$results = $http->get ( array (
		'google' => $url 
) );
$contents = $results ['google']->body;
$contents = preg_replace ( '/<form action="/search" /', '<form action="http://' . $_SERVER ['HTTP_HOST'] . $_SERVER ['SCRIPT_NAME'] . '" method="POST"', $contents );
echo $contents;

 

微信,新浪,QQ的分享脚本

有时候bshare不太能满足自己的需求,或者不想为了一个小小的分享引用一堆杂七杂八的脚本怎么办?

其它各大公司都提供了简单的分享方式,bshare,jiathis也就是这些方便的集合体,或许说,做得更容易,更人性化了。

现在演示下单独一个的分享。(其实只要通过jiathis进行对应的分享,在浏览器的地址栏就可以获取对应的链接了,去官网的文档查看下也是有的)

qq

	const TYPE_QQ="qq";
	const TYPE_QQ_URL="http://connect.qq.com/widget/shareqq/index.html?";
	public static function getQqUrl($title,$summary,$url,$img){
		$querys=array(
			'title'=>$title, 
			'url'=>$url,
			'pics'=>$img,
			'summary'=>$summary,
			'desc'=>$summary,
		);
		return self::TYPE_QQ_URL.http_build_query($querys);
	}

微薄

	const TYPE_WEIBO="weibo";
	const TYPE_WEIBO_URL="http://service.weibo.com/share/share.php?";
	public static function getWeiboUrl($title,$summary,$url,$img){
		$querys=array(
			'title'=>$title."#".$summary,
			'url'=>$url,
			'pic'=>$img,
		);
		return self::TYPE_WEIBO_URL.http_build_query($querys);
	}

微信比较特别,只通过扫描的方式进行分享。然后再分享到朋友圈里。这样有比没有强了呵呵。

	const TYPE_WX="qq";
	const TYPE_WX_URL="https://open.weixin.qq.com/qr/set/?";
	const TYPE_WX_URL2="https://open.weixin.qq.com/qr/get/";
	//https://open.weixin.qq.com/qr/get/Z2HYZsVENp3hRmUA/ 获取对应的二维码
	/**
	 * 该二维码为一次性的,被扫后必须重新生成
	 * @param  $title
	 * @param  $summary
	 * @param  $url
	 * @param  $img
	 * @return string
	 */
	public static function getWXUrl($title,$summary,$url,$img){
		$querys=array(
			'title'=>$title."#".$summary,
			'url'=>$url,
			'img'=>$img,
			'appid'=>'',
			'a'=>1,
		);
		lib("http.class.php");
		$http=new http();
		$data=$http->get(self::TYPE_WX_URL.http_build_query($querys));
		if($data){
			$data=$http->get_data();
		}
		if(preg_match("/showWxBox("(w+)")/", $data,$match)){
			return self::TYPE_WX_URL2.$match[1]."/";
		}
	}

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

实现 HTTP response 回传文件(纯属蛋疼)

有兴趣的同学可以下个chrome,进行post和get访问时,数据流的查看。

可以发现,是浏览器将表单中的数据项按各种分隔的方式传送到服务器端。服务器通过文件头再进行相应的数据解析。包括文件上传也是这样子。

问题来了。 我上传文件没有问题,但是需要将服务器端生成的文件再获取回来。实现的方式有多种,闲得蛋疼。。模拟了HTTP的方式将数据以模拟enctype=”multipart/form-data”的方式返回,然后客户端这边再进行解析。

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

failed to load resource under Chrome

今天出现下午出现了件奇怪的事。一小时前还能访问的,网速降了后不知道为什么就一直在chrome里提示这个异常。

“failed to load resource under Chrome”

清了多次缓存也一样。

 经过检查,发现是easyui的脚本只加载了8成左右,后面部分缺失了。不是网其它朋友遇到的那样的问题。重启了路由,网速提上来就好了。

现在引出来一个问题。

php很多项目在引用的文件,文件前面会判断下某个常量来表示下是否装载了核心类。

然后像js这种,特别是大类库是不是得在文件尾追加点标志变量,当检测不到这些变量时做下提示是否好一定?见仁见智了。

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

DZ IIS WRITE

今天处理dz的时候碰到一个问题

isapi_rewrite3 配合dz2.5(gbk)的时候
RewriteRule ^(.*)/space-(username|uid)-(.+).html(?(.*))*$ $1/home.php?mod=space&$2=$3&$5 [QSA,NU,PT,L]

这个配置里,$5是匹配不到的。文件编码也没有问题。经过不断尝试。发现得在后面加多几个参数变量解决。下面为详细介绍的链接.

http://www.7aidc.com/help/helpdtl.asp?nid=108

IIS正则

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

DZ门户模板更新问题

最近处理dz出现了一件奇怪的事,模板的内页更新正常,但是不部分分类的页面没有更新。

因为使用的是同一个模板页面。但是不同分类的页面竟然不一样。

第一个想法是dz的这套机制里存在缓存,然后更新过程中因为权限或者其它问题导致部分不成功。So,最笨的方法是检查生成方式。然后去找。

但然后,其它猜猜都知道页面一定在data目录,

扫了下 diy 和telmplate两目录,逐一尝试下。

最后确定了修改目录是  /data/diy/template/singcere_note/portal/

该目录为不同分类生成不同的模板页面。只要将更新有问题的部分删除,重新生成即可。

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827