问题
因有一项目新闻发布系统,数据库内容字段中存储的是原图的路径(当然还有其他文字内容啦,内容里插图时,存的是图片路径),但前台想使用缩略图,琢磨1小时余,得到以下结果,可解决问题(取img标签会了,取别的标签任意属性自然也会了):
/*正则取图片img标记中的任意属性*/
$word = '<p height="22" align="cenetr">111 22</p> <img src="/upload/images/aaa.jpg" width="100"><div >中国人</div>';
//取整个图片代码
preg_match('/</s*img/s+[^>]*?src/s*=/s*(/'|/")(.*?)//1[^>]*?//?/s*>/i',$word,$matches);
echo $matches[0];//结果:<img src="/upload/images/aaa.jpg" width="100">
$word = '<p height="22" align="cenetr">111 22</p> <img height="60" src="/upload/images/aaa.jpg" width=100 float:left;">中国人</div>';
//取width
preg_match('/<img.+(width=/"?/d*/"?).+>/i',$word,$matches);
echo $matches[1];
//取height
preg_match('/<img.+(height=/"?/d*/"?).+>/i',$word,$matches);
echo $matches[1];
//取src
preg_match('/<img.+src=/"?(.+/.(jpg|gif|bmp|bnp|png))/"?.+>/i',$word,$matches);
echo $matches[1];
/*正则替换去掉或改变图片img标记中的任意属性***************************************************************/
$str = '<p height="22" align="cenetr">111 22</p> <img height="60" src="/upload/images/aaa.jpg" width=100 float:left;">中国人</div>
<p height="22" align="cenetr">31313 224344</p> <img src="/upload/images/bbb.jpg" height="60" width=100 float:left;">1212121</div>';
//改变src属性(此处将原来的src="/upload/images/bbb.jpg"改变为src="/upload/_thumbs/Images/bbb.jpg")
print preg_replace('/(<img.+src=/"?.+)(images//)(.+/.(jpg|gif|bmp|bnp|png)/"?.+>)/i',"/${1}_thumbs/Images//${3}",$str);
/*改变src属性,
此处将原来的src="/upload/images/bbb.jpg"改变为src="/upload/_thumbs/Images/bbb.jpg",并舍弃宽和高
(比如你想在前台显示缩略图,但数据库中存储的是原图的路径。为什么要舍弃宽高??你缩略图啊!还是原图的宽高,会怎样???)
*/
print preg_replace('/(<img).+(src=/"?.+)images//(.+/.(jpg|gif|bmp|bnp|png)/"?).+>/i',"/${1} /${2}_thumbs/Images//${3}>",$str);
?>
本文链接:http://www.cnblogs.com/cfinder010/p/3256381.html,转载请注明。
Python的另外一种循环体结构是计数循环体for,通过for循环实现某些语句块循环执行一定次数,其使用语法结构如下。
Python的for循环应用思想和C等其他高级语言一样,当for的条件满足时,for下的语句块执行,不同的是for的条件的写法和其他高级语言有些不太一样。
这里第一次出现了左方括号 ‘[’ 和右方括号 ‘]’, 用左右方括号括起来的数据序列我们称之为list列表,有关list列表的知识我们以后再详细讲解。
这里有一点需要注意就是[value1,value2,.....]后边要有冒号:,否则会有语法出错错误。
for的循环原理是这样的每次从in后边的list取出一个值valuex并赋值for后边variable变量,那循环多少次呢?list里有几个数据就循环几次,当list里的所有数据都取完了,for就结束了,故for执行的次数取决于list里的数据个数,下面我举个例子来说明一下。
代码第3行是个for循环每次从[1,2,3,4,5]这个list里取出一个值赋值给num,in后边的list([1, 2, 3, 4, 5])共有5个数据,可知for可以循环5次之后就能结束。
运行结果如下
结下来我们分析一下结果为何是这样的?
每次循环for都会从[ 1, 2, 3, 4, 5]里提取一个数据给num。
本文链接:http://www.cnblogs.com/jeapedu/p/3256769.html,转载请注明。
wordpress本身不带文章浏览统计,可以用插件wp-postview,但是刷新还是算一个浏览次数。
1.首先在主题下functions.php里增加以下代码,这段代码也是网上可以找到的
2 function getPostViews($postID) {
3 $count_key = 'post_views_count';
4 $count = get_post_meta($postID, $count_key, true);
5 if ($count == '') {
6 delete_post_meta($postID, $count_key);
7 add_post_meta($postID, $count_key, '0');
8 return "0";
9 }
10 return $count;
11 }
12 function setPostViews($postID) {
13 $count_key = 'post_views_count';
14 $count = get_post_meta($postID, $count_key, true);
15 if ($count == '') {
16 $count = 0;
17 delete_post_meta($postID, $count_key);
18 add_post_meta($postID, $count_key, '0');
19 } else {
20 $count++;
21 update_post_meta($postID, $count_key, $count);
22 }
23 }
2.解决刷新统计数增加,一定要放在文章页面的最前面,貌似php设置cookie之前不能有输出,蛋疼。我的是single.php页面
2 $post_id=get_the_ID();
3 if(isset($_COOKIE['views'.$post_id.COOKIEHASH]) && $_COOKIE['views'.$post_id.COOKIEHASH] == '1')
4 {
5
6 }
7 else{
8 setPostViews($post_id);
9 setcookie('views'.$post_id.COOKIEHASH,'1',time() + 3600,COOKIEPATH,COOKIE_DOMAIN);//设置时间间隔
10 }
11 ?>
本文链接:http://www.cnblogs.com/wuchao/p/3259173.html,转载请注明。