php短网址功能如何实现

标 签: php

php短网址

相信php短网址各位都会有用到吧,现在有个功能需求就是要做网址生成,我找了好多个办法,

开始的时候自己写了一个生成算法,后来没有用上,因为老大说要用百度的,去他的API是去看了,好是好,

不过他好的网址都会报错,最后没有,在网上找了一个开源的,不费话了,直接上代码:

/**
 * 短网址替换
 * @return string $_url
 * @author MaWei (http://www.phpyrb.com)
 * @date 2014-9-3 下午5:46:50
 */
function vwzShortUrl($_url){
	$requery=curl_init();
	curl_setopt($requery,CURLOPT_URL,"http://vwz.me/API.php?url=$_url");
	curl_setopt($requery, CURLOPT_RETURNTRANSFER, true);
	$retstr=curl_exec($requery);
	curl_close($requery);
	$retstr = json_decode($retstr);
	if($retstr->status != 'error'){
		$shorturl = $retstr->msg;
	}else{
		$shorturl = $_url;
	}
	return $shorturl;
}
这个用问题,可以直接留言,或者直接去官网看API;

PHP / 评 论 (0) / 热度 (120℃) / 2017-03-06 / 阅读全文  / MaWei

正则匹配网址

标 签: php

网址正则匹配

最近做社交网址,要用到正则匹配网址,到网上找了好多,都不太行,看了很多论坛,

最后在国外论坛看到一个网址正则匹配表达达,不多说了,直接上表达式:

if(preg_match_all('/((?:https?|ftp):\/\/(?:www\.)?(?:[a-zA-Z0-9][a-zA-Z0-9\-]*\.)?[a-zA-Z0-9][a-zA-Z0-9\-]*(?:\.[a-zA-Z0-9]+)+(?:\:[0-9]*)?(?:\/[^\x{2e80}-\x{9fff}\s<\'\"“”‘’,,。]*)?)/u',$_html,$matches)){
    return $mathches
}
至于匹配后要做的操作,各位看官自行处理,一般情况是会用到替换,不然找出来干什么了,可以用,str_replace()方法就可以了;

PHP / 评 论 (0) / 热度 (86℃) / 2017-03-06 / 阅读全文  / MaWei

django模板标签。

标 签: pythondjango

django模板标签

1.if/else,if/else在模板上的使用格式:

    格式1:

{% if false|true %}
   show content
{% endif %}

    格式2:

{% if false|true %}
   show content
{% else %}
    show content
{% endif %}

    要注意点:1.使用{% if %}的时候,一点注意空格,不能靠着%号,{%这两个字符中间不是有空格,后面也一样。if和判断条件表达式中间有空格。

                   2.表达式支持 or(或),and(与),not(非),注意的是,支持单个多次,例:a and b and c,中间用空格隔开。不是支持多个多次,如: a and b or c这个是不支持的,因为里面不支持()。如果有需求,可以嵌套使用。

                   3.最要注意的是,一定要有 {% endif %} 结束。不然你就悲剧了。

2.for,for就是迭代,说的通俗一点,就是循环,(费话,谁不知道啊),不费话,直接说for在模板上使用格式:

{% for a in b %}
  show content
{% endfor %}

{% for a in b %}
  show content
{% empty %}//支持为空时,显示
  empty
{% endfor %}

同时,标签for还几个属性方法,可以调用, forloop.counter表式当前迭代到第几个,forloop.revcounter表达迭代还剩余的个数,注意,他们都是整数。forloop.first,第一个,forloop.last最后一个,注意他们是布尔值,例如,迭代到最后一个时,forloop.last为真,forloop.first表示迭代第一个为真。


Python / 评 论 (0) / 热度 (367℃) / 2017-03-06 / 阅读全文  / MaWei

php如何发送http请求并且返回结果

标 签: php

最近一个项目要用到php请求http://的需求,到网上找了好久,也没有找到什么好的例子,最后自己费了好大的精力,查手册,终于搞定了。哈哈……现在分享一下。

php请求http方法如下:

//初始化curl模块
$requery=curl_init();

//设置你要请求的url
curl_setopt($requery,CURLOPT_URL,"http://www.phpyrb.com");

//参数提交方式
curl_setopt($requery,CURLOPT_POST,true);

//提交的参数,以数组的方式。例:$data = array('name'=>'value');
curl_setopt($requery, CURLOPT_POSTFIELDS, $data);

//设置请求返回方式,添加此项为以字符串返回,如果没有此项则会直接输出到浏览器上,如果你想到用到结果,就设置此项
curl_setopt($requery, CURLOPT_RETURNTRANSFER, true);

//获取返回的数据,没有设置上面那项则会直接输出到浏览器上,当然你也取到了结果
$retstr=curl_exec($requery);

//关闭
curl_close($requery);

这个还是常用的。网上又基本找不到,所以然记录下来,方便自己也方便你。如果这些还不能满足你的话,那抱歉了,只能自行查手册脑补了。

PHP / 评 论 (0) / 热度 (123℃) / 2017-03-06 / 阅读全文  / MaWei

php从网络上下载图片并保存

标 签: php

php下载图片

1.还是一惯的风格,不多费话,直接上代码,(这还叫不费话啊):

	/**
	 * 创建文件夹
	 * @param  string $_path 文件夹路径
	 * @return array
	 * @author MaWei (http://www.phpyrb.com)
	 * @date 2014-8-3  下午2:10:22
         * @qq群号:341411327
	 */
	function download_img($_url,$_path = null,$_name = null){
		ob_start();
		readfile($_url);
		$img = ob_get_contents();
		ob_end_clean();
		if(! $_name){
			$exname = exname($_url);
			$_name = date('YmdHms').rand(10).'.'.$exname;
		}
		if(! $_path){
			$_path = UPLOAD_PATH.'/avatar'.'/';
		}
		createDir($_path);
		$path = $_path.$_name;
		file_put_contents($path, $img);
		if(is_file($path)){
                        chmod($path, 0444);//这步不能少,放病毒攻击
			return $path;
		}
                return null;
	}
下面是文件创建函数:
	/**
	 * 创建文件夹
	 * @param  string $_path 文件夹路径
	 * @return array
	 * @author MaWei (http://www.phpyrb.com)
	 * @date 2014-8-3  下午2:10:22
	 */
	function createDir($_path){
		if (!file_exists($_path)){
			createDir(dirname($_path));
			mkdir($_path, 0777);
		}
	}

下面是获取文件扩展名函数:

	/**
	 * 返回文件的后缀名
	 * @param string $_file
	 * @return string $exname
	 * @author MaWei ( http://www.phpyrb.com )
	 * @date 2014-4-17 下午1:50:15
	 */
	function exname($_file){
		$file = basename($_file);
		$exname = substr(strrchr($file,'.'), 1);
		return  strtolower($exname);
	}

PHP / 评 论 (0) / 热度 (83℃) / 2017-03-06 / 阅读全文  / MaWei

php循环创建文件夹

标 签: php

php循环创建文件夹

不能多说了,直接上代码,(费话,要说也没什么说的啊):

	/**
	 * 创建文件夹
	 * @param  string $_path 文件夹路径
	 * @return array
	 * @author MaWei (http://www.phpyrb.com)
	 * @date 2014-8-3  下午2:10:22
	 */
	function createDir($_path){
		if (!file_exists($_path)){
			createDir(dirname($_path));
			mkdir($_path, 0777);
		}
	}

PHP / 评 论 (0) / 热度 (115℃) / 2017-03-06 / 阅读全文  / MaWei

php获取文件扩展名

标 签: php

php获取文件的扩展名

方法1:

	function exname($_file){
		$file = basename($_file);
		$exname = substr($file,strrpos($file,'.')+1);
		return  strtolower($exname);
	}


方法2:

	function exname($_file){
		$file = basename($_file);
		$exname = substr(strrchr($file,'.'), 1);
		return  strtolower($exname);
	}


方法3:

	function exname($_file){
		$file = basename($_file);
		$tmp = explode('.', $file);
		$exname = end($tmp);
		return  strtolower($exname);
	}
方法4:
	function exname($_file){
		$file = basename($_file);
		$exname = pathinfo($file);
		$exname = $exname['extension'];
		return  strtolower($exname);
	}
推荐用前三种方法,最后的方法需要环境的支持。

PHP / 评 论 (0) / 热度 (112℃) / 2017-03-06 / 阅读全文  / MaWei

python文件操作函数

标 签: python

python文件操作函数,python open函数用法

1.python文件操作常用函数:

output = open(r'D:\test','w')   #创建输出文件('w' 写入,'r'读写,'a'文件末尾追加)
input = open('data',r)或 open('data's) #创建输入文件
aString = input.read() #把整个文件当成一个字符串
aString = input.read(N) #读取N个字符当成一个字符串
aString = input.readline() #读取下一行包括行末标识符成一个字符串
aList = input.readlines() #读取整个文件到字符串列表
output.write(aString) #写入字符串到文件
output.writelines(aList)#把列表中所有的字符串写入文件
output.close()#手动关闭
output.flush()#把输出缓冲区写入硬盘中,但不关闭文件
anyFile.seek(N)#修改文件位置到偏移量N处后进行下一操作
for line in open('data'): use line #文件迭代一行一行的读
open('t.txt',encoding='latin-1') #Python 3.0 Unicode 文本文件(str字符串)
open('t.bin','rb') #Python 3.0二进制byte文件(bytes字符串)

2.版本区别:

    1.open('t.txt','w').write('aaa'):2.x版本是没有返回值,3.x版本会返回写入的字符数;

3.注意:

    

Python / 评 论 (0) / 热度 (87℃) / 2017-03-06 / 阅读全文  / MaWei