织梦模板dede:channelartlist标签支持currentstyle
织梦dedecms中仅channel支持currentstyle属性,实际使用中往往需要channelartlist添加currentstyle,修改如下:
修改include\taglib\channelartlist.lib.php
第93行$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
新增(其中'ON'为设置的样式类):
织梦dedecms中仅channel支持currentstyle属性,实际使用中往往需要channelartlist添加currentstyle,修改如下:
修改include\taglib\channelartlist.lib.php
第93行$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
新增(其中'ON'为设置的样式类):
中文等多字节字符串翻转
$str = '字符串反转';
function rev($str, $encoding = 'utf-8'){
$len = mb_strlen($str, $encoding);
$result = '';
for ($i = $len-1; $i>=0; $i--){
$result.= mb_substr($str,$i,1,$encoding);
}
return $result;
}
echo rev($str);
生成圆形头像:
test('2.jpg','1.jpg'); #2原图 1生成图
function test($url,$path='./'){
$w = 100; $h=100; // original size
$original_path= $url;
$dest_path = $path.uniqid().'.png';
$src = imagecreatefromstring(file_get_contents($original_path));
$newpic = imagecreatetruecolor($w,$h);
imagealphablending($newpic,false);
$transparent = imagecolorallocatealpha($newpic, 0, 0, 0, 127);
$r=$w/2;
for($x=0;$x<$w;$x++)
for($y=0;$y<$h;$y++){
$c = imagecolorat($src,$x,$y);
$_x = $x - $w/2;
$_y = $y - $h/2;
if((($_x*$_x) + ($_y*$_y)) < ($r*$r)){
imagesetpixel($newpic,$x,$y,$c);
}else{
imagesetpixel($newpic,$x,$y,$transparent);
}
}
imagesavealpha($newpic, true);
imagepng($newpic, $dest_path);
imagedestroy($newpic);
imagedestroy($src);
// unlink($url);
return $dest_path;
}
curl随机IP访问:
function curl($url,$ifpost = 0, $datafields = '', $cookiefile = '', $v = false){
$ip_long = array(
array('607649792', '608174079'), //36.56.0.0-36.63.255.255
array('1038614528', '1039007743'), //61.232.0.0-61.237.255.255
array('1783627776', '1784676351'), //106.80.0.0-106.95.255.255
array('2035023872', '2035154943'), //121.76.0.0-121.77.255.255
array('2078801920', '2079064063'), //123.232.0.0-123.235.255.255
array('-1950089216', '-1948778497'), //139.196.0.0-139.215.255.255
array('-1425539072', '-1425014785'), //171.8.0.0-171.15.255.255
array('-1236271104', '-1235419137'), //182.80.0.0-182.92.255.255
array('-770113536', '-768606209'), //210.25.0.0-210.47.255.255
array('-569376768', '-564133889'), //222.16.0.0-222.95.255.255
);
$rand_key = mt_rand(0, 9);
$ip= long2ip(mt_rand($ip_long[$rand_key][0], $ip_long[$rand_key][1]));
$header = array("Connection: Keep-Alive","Accept: text/html, application/xhtml+xml, */*", "Pragma: no-cache", "Accept-Language: zh-Hans-CN,zh-Hans;q=0.8,en-US;q=0.5,en;q=0.3","User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)",'CLIENT-IP:'.$ip,'X-FORWARDED-FOR:'.$ip);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, $v);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$ifpost && curl_setopt($ch, CURLOPT_POST, $ifpost);
$ifpost && curl_setopt($ch, CURLOPT_POSTFIELDS, $datafields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$cookiefile && curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
$cookiefile && curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile);
curl_setopt($ch,CURLOPT_TIMEOUT,30); //允许执行的最长秒数
$ok = curl_exec($ch);
curl_close($ch);
unset($ch);
return $ok;
}
print_r(curl("https://www.r1989.com"));
如果当前为2018-01-29则通过echo date("Y-m",strtotime("+1 month"));
则会得出3月的错误结果
function GetMonth($sign="1")
{
//得到系统的年月
$tmp_date=date("Ym");
//切割出年份
$tmp_year=substr($tmp_date,0,4);
//切割出月份
$tmp_mon =substr($tmp_date,4,2);
$tmp_nextmonth=mktime(0,0,0,$tmp_mon+1,1,$tmp_year);
$tmp_forwardmonth=mktime(0,0,0,$tmp_mon-1,1,$tmp_year);
if($sign==0){
//得到当前月的下一个月
return $fm_next_month=date("Ym",$tmp_nextmonth);
}else{
//得到当前月的上一个月
return $fm_forward_month=date("Ym",$tmp_forwardmonth);
}
}
echo GetMonth('0');
chrome input required display:none
prismjs 轻量、可扩展、简洁、高效,使用现代化的 Web 标准构建,支持超过上百种编程语言,支持多种插件。
官网:http://prismjs.com
站群,即一个人或一个团队操作多个网站,目的是通过搜索引擎获得大量流量,或者是将链接指向同一个网站,以提高搜索排名。由此我们可以将站群理解为一群网站,或者是一网站的集合,网站规模少则几个,多则上千过万。比如政府门户网站群、大型企事业网站群、行业网站群等。
wampserver修改alias/phpmyadmin.conf
require local => require all granted
AllowOverride all
Order Deny,Allow
Allow from all
来源:http://www.codeweblog.com/php%E4%BF%AE%E6%94%B9png%E5%9B%BE%E7%89%87dpi/
最近使用PHP生成图片用于打印,但是浏览器默认输出为72DPI,打印要求为300DPI,如果直接打印,图片会比较模糊。
在网上找了一圈,大部分链接都指向ImageMagick,但是我的项目部署在新浪SAE,新浪SAE不支持它。继续找,发现了《PHP 使用GD函式庫更改圖片DPI》这篇文章,提供了修改JPG图片分辨率的方法,亲测可行。但是我的项目必须使用PNG图片,因为用的是透明背景,所以上面的方法还不行,但是可以参考思路。后来又找到了另外一篇文章《PHP: Dpi of a png image》,这篇文章提供了获取PNG图片分辨率的方法,遗憾的是作者并没有给出设置分辨率的方法。
最后,被逼无奈,硬着头皮自己写啦,挣扎一番终于成功了。这是我写的测试例子:
<?php
$filename = 'img/example.png';
// ob_start();
// $im = imagecreatefrompng($filename);
// imagepng($im);
// $file = ob_get_contents();
// ob_end_clean();
$file = file_get_contents($filename);
//数据块长度为9
$len = pack("N", 9);
//数据块类型标志为pHYs
$sign = pack("A*", "pHYs");
//X方向和Y方向的分辨率均为300DPI(1像素/英寸=39.37像素/米),单位为米(0为未知,1为米)
$data = pack("NNC", 300 * 39.37, 300 * 39.37, 0x01);
//CRC检验码由数据块符号和数据域计算得到
$checksum = pack("N", crc32($sign . $data));
$phys = $len . $sign . $data . $checksum;
$pos = strpos($file, "pHYs");
if ($pos > 0) {
//修改pHYs数据块
$file = substr_replace($file, $phys, $pos - 4, 21);
} else {
//IHDR结束位置(PNG头固定长度为8,IHDR固定长度为25)
$pos = 33;
//将pHYs数据块插入到IHDR之后
$file = substr_replace($file, $phys, $pos, 0);
}
header("Content-type: image/png");
header('Content-Disposition: attachment; filename="' . basename($filename) . '"');
echo $file;
?>
这篇文章应该也可以作为《各位兄弟姐妹,php 怎么可以生成一张300分辨率的图片,谢谢》的一个答案。
本文参考的其他资料:
《W3C PNG Specification》
《png文件的数据结构》
《分析PNG图像文件结构(3)》
在网上搜索的过程中还遇到了一些有用的资料,也放在这里吧:
《JavaScript修改Canvas图片的分辨率(DPI)》
《PNG设置分辨率》(使用了Linux函数png_set_pHYs)
最后说一句,有条件还是使用ImageMagick,没必要这么折腾!