小功能(二)

1.多图参数整合

foreach ($files[‘name‘] as $key => $value) {
if ($files[‘name‘][$key] && !preg_match(‘/[\x{4e00}-\x{9fa5}]/u‘, $files[‘name‘][$key]) > 0){
      $file = array(
          ‘name‘ => $files[‘name‘][$key],
          ‘type‘ => $files[‘type‘][$key],
          ‘tmp_name‘ => $files[‘tmp_name‘][$key],
          ‘error‘ => $files[‘error‘][$key],
          ‘size‘ => $files[‘size‘][$key]
      );
      $_FILES = array("up_file" => $file);
      foreach ($_FILES as $file => $array) {
          $newupload = my_handle_attachment($file, $pid = 0); 

      }
      $attach_id[] = $newupload;
      $name[] = $files[‘name‘][$key];
      $type[] = $files[‘type‘][$key];
  }else{
    echo 3 ;exit;
  }
}my_handle_attachment():为一般单图上传返回附件id

2.文件下载参考

//文件下载

header("Content-type:text/html;charset=utf-8"); 

$file_name = $_REQUEST[‘file‘];

//用以解决中文不能显示出来的问题
$file_name=iconv("utf-8","gb2312",$file_name); 

$file_sub_path=$_SERVER[‘DOCUMENT_ROOT‘].get_stylesheet_directory_uri(); 

$file_path=$file_sub_path.$file_name; 

//首先要判断给定的文件存在与否
if(!file_exists($file_path)){ 

echo "没有该文件文件"; 

return ; 

} 

$fp=fopen($file_path,"r"); 

$file_size=filesize($file_path);

//下载文件需要用到的头
Header("Content-type: application/octet-stream"); 

Header("Accept-Ranges: bytes"); 

Header("Accept-Length:".$file_size); 

Header("Content-Disposition: attachment; filename=".$file_name); 

$buffer=1024; 

$file_count=0; 

//向浏览器返回数据 

while(!feof($fp) && $file_count<$file_size){ 

$file_con=fread($fp,$buffer); 

$file_count+=$buffer; 

echo $file_con; 

}
fclose($fp);

3.自定义分类查询

//自定义分类查询
$paged = 1;
  if ( get_query_var(‘paged‘) ) $paged = get_query_var(‘paged‘);
  if ( get_query_var(‘page‘) ) $paged = get_query_var(‘page‘);
        $posts_per_page = get_option(‘posts_per_page‘);
        $args = array(
           ‘post_type‘ => ‘post‘, //自定义文章类型
           ‘posts_per_page‘=> 2,
               ‘tax_query‘ => array(
                 array(
                        ‘taxonomy‘ => ‘category‘, //调用自定义分类法
                           ‘field‘ => ‘cat‘, //
                           ‘terms‘ => $term_arr[‘term_id‘]
       )
    ),
              ‘paged‘         => $paged
);
    query_posts($args);
if (have_posts()) :  while (have_posts()) : the_post();
 wp_reset_query();

4.自定义字段筛选

            $posts_per_pages = get_option(‘posts_per_page‘);
                //$posts_per_pages = 1;
                $paged = 1;
                if ( get_query_var(‘paged‘) ) $paged = get_query_var(‘paged‘);
                if ( get_query_var(‘page‘) ) $paged = get_query_var(‘page‘);
                if(!empty($get_crowd) || !empty($get_xueke) || !empty($get_field) || !empty($get_app) ){

                    if(!empty($get_crowd)){
                        $crowd_array = array(
                            ‘taxonomy‘ => ‘cat_crowd‘,
                            ‘field‘    => ‘term_id‘,
                            ‘terms‘ => $get_crowd
                        );
                    }

                    if(!empty($get_xueke)){
                        $xueke_array = array(
                            ‘taxonomy‘ => ‘cat_xueke‘,
                            ‘field‘    => ‘term_id‘,
                            ‘terms‘ => $get_xueke
                        );
                    }

                    if(!empty($get_field)){
                        $field_array = array(
                            ‘taxonomy‘ => ‘cat_field‘,
                            ‘field‘    => ‘term_id‘,
                            ‘terms‘ => $get_field
                        );
                    }

                    if(!empty($get_app)){
                        $app_array = array(
                            ‘taxonomy‘ => ‘cat_application‘,
                            ‘field‘    => ‘term_id‘,
                            ‘terms‘ => $get_app
                        );
                    }
                    $args = array(
                        ‘posts_per_page‘   => $posts_per_pages,
                        ‘orderby‘          => $order,
                        ‘order‘            => ‘desc‘,
                        ‘post_type‘        => ‘type_product‘,
                        ‘paged‘            => $paged,
                        ‘post_status‘      => ‘publish‘,
                        ‘tax_query‘        => array(
                            ‘relation‘ => ‘AND‘,
                            $crowd_array,
                            $xueke_array,
                            $field_array,
                            $app_array,
                        )
                    );
                }else{
                    $args = array(
                       ‘post_type‘        => ‘type_product‘, //自定义文章类型
                       ‘orderby‘          => $order,
                       ‘order‘            => ‘desc‘,
                       ‘posts_per_page‘   => $posts_per_pages,
                       ‘paged‘            => $paged
                    );
                }

                query_posts($args); if (have_posts()) : ?><?php while (have_posts()) : the_post();
  <?php endwhile;?>
                <?php else: ?>
                    <div class="rock_list">
                        <p class="n_center"><?php _e(‘未找到内容‘,‘kepress‘); ?></p>
                    </div>
                <?php endif; ?>
                </ul>
                <div class="page_wrap">
                    <?php of_pagenavi(999); ?>
                </div>
                <?php wp_reset_query();  ?>   

5.loop  分页参考

function of_pagenavi( $settings ) {
	$s = wp_parse_args( $settings, array(
		‘range‘ => ‘5‘,
		‘before‘ => ‘‘,
		‘after‘ => ‘‘,
	) );
	$range = intval( $s[‘range‘] );
	global $paged, $wp_query;
	if ( ! $max_page ) {
		$max_page = $wp_query->max_num_pages;
	}
	if( $max_page > 1 ) {
		echo $s[‘before‘];
		echo ‘<ul class="pagination">‘;
		echo ‘‘;
		if( ! $paged ) {
			$paged = 1;
		}
		if( $paged != 1 ) {
			echo ‘<li><a href="‘ . get_pagenum_link(1) . ‘" class="extend first"> ? </a></li>‘;
		}
		// echo ‘<li>‘;
		// previous_posts_link( ‘ ? ‘ );
		// echo ‘</li>‘;
		if( $max_page > $range ) {
			if( $paged < $range ) {
				for( $i = 1; $i <= ( $range + 1 ); $i++ ) {
					$classes = array( ‘page‘ );
					$href = get_pagenum_link($i);
					if( $i == $paged )
						$classes[] = ‘active‘;
					printf( ‘<li><a href="%s" class="%s">%s</a></li>‘, $href, implode( ‘ ‘, $classes ), $i );
				}
				echo ‘<li class="disable"><a href="javascript:;">...</a></li>‘;
			} elseif( $paged >= ( $max_page - ceil( ( $range/2 ) ) ) ) {
				echo ‘<li class="disable"><a href="javascript:;">...</a></li>‘;
				for( $i = $max_page - $range; $i <= $max_page; $i++ ) {
					$classes = array( ‘page‘ );
					$href = get_pagenum_link($i);
					if( $i == $paged )
						$classes[] = ‘active‘;
					printf( ‘<li><a href="%s" class="%s">%s</a></li>‘, $href, implode( ‘ ‘, $classes ), $i );
				}
			} elseif( $paged >= $range && $paged < ( $max_page - ceil( ( $range/2 ) ) ) ) {
				echo ‘<li class="disable"><a href="javascript:;">...</a></li>‘;
				for( $i = ( $paged - ceil( $range/2 ) ); $i <= ( $paged + ceil( ( $range/2 ) ) ); $i++ ) {
					$classes = array( ‘page‘ );
					$href = get_pagenum_link($i);
					if( $i == $paged )
						$classes[] = ‘active‘;
					printf( ‘<li><a href="%s" class="%s">%s</a></li>‘, $href, implode( ‘ ‘, $classes ), $i );
				}
				echo ‘<li class="disable"><a href="javascript:;">...</a></li>‘;
			}
		} else {
			for( $i = 1; $i <= $max_page; $i++ ) {
				$classes = array( ‘page‘ );
				$href = get_pagenum_link($i);
				if( $i == $paged )
					$classes[] = ‘active‘;
				printf( ‘<li><a href="%s" class="%s">%s</a></li>‘, $href, implode( ‘ ‘, $classes ), $i );
			}
		}
		// echo ‘<li>‘;
		// next_posts_link(‘ ? ‘);
		// echo ‘</li>‘;
		if( $paged != $max_page ) {
			echo ‘<li><a href="‘ . get_pagenum_link($max_page) . ‘" class="extend last"> ? </a></li>‘;
		}
		echo ‘</ul><!-- .wp-pagenavi -->‘;
		echo $s[‘after‘];
	}
}

function of_previous_posts_link_attributes() {
	return ‘class="previouspostslink"‘;
}
add_filter( ‘previous_posts_link_attributes‘, ‘of_previous_posts_link_attributes‘ );

function of_next_posts_link_attributes() {
	return ‘class="nextpostslink"‘;
}
add_filter( ‘next_posts_link_attributes‘, ‘of_next_posts_link_attributes‘ );

6.手机端访问跳转

$agent = $_SERVER[‘HTTP_USER_AGENT‘];
if(strpos($agent,"comFront") || strpos($agent,"iPhone") || strpos($agent,"MIDP-2.0") || strpos($agent,"Opera Mini") || strpos($agent,"UCWEB") || strpos($agent,"Android") || strpos($agent,"Windows CE") || strpos($agent,"SymbianOS"))
header("Location:http://likinming.com/m/");
exit;/*(使用 header(location) 就跳转到另一个页面了,但事实上,PHP却仍然会执行后台的代码的)

7.ip

function ip()
{
if(getenv(‘HTTP_CLIENT_IP‘) && strcasecmp(getenv(‘HTTP_CLIENT_IP‘), ‘unknown‘))
{
$ip = getenv(‘HTTP_CLIENT_IP‘);
}
elseif(getenv(‘HTTP_X_FORWARDED_FOR‘) && strcasecmp(getenv(‘HTTP_X_FORWARDED_FOR‘), ‘unknown‘))
{
$ip = getenv(‘HTTP_X_FORWARDED_FOR‘);
}
elseif(getenv(‘REMOTE_ADDR‘) && strcasecmp(getenv(‘REMOTE_ADDR‘), ‘unknown‘))
{
$ip = getenv(‘REMOTE_ADDR‘);
}
elseif(isset($_SERVER[‘REMOTE_ADDR‘]) && $_SERVER[‘REMOTE_ADDR‘] && strcasecmp($_SERVER[‘REMOTE_ADDR‘], ‘unknown‘))
{
$ip = $_SERVER[‘REMOTE_ADDR‘];
}
return preg_match("/[\d\.]{7,15}/", $ip, $matches) ? $matches[0] : ‘unknown‘;
} 
时间: 2024-10-15 10:38:50

小功能(二)的相关文章

词频统计-功能二

一.完成一个小程序 今天的任务是处理一本英文小说.我处理的英文小说是<war and peace> 本想着用多线程来解决的,发现看书还不是太懂,并不能真正动手编程. 我在编程的过程中主要遇到了以下两个问题: 1.在对整个英文小说进行单词总数统计遇见困难. 2.字符串数组的空字符串处理问题.因为我开始用空格来代替标点等不是英文单词来进行对单词分割,其中用到了正则表达式,后来统计对单词出现频数时,发现空格竟然排第一名,有4万多空格. 最终我的处理方式是使用List泛型集合的ForEach方法循环获

iOS略记小功能

在我们进行开发工程的时候,有些小的功能能提高用户的体验,但是这些小的功能记忆起来比较麻烦,很容易忘记,在这里我整理一下自己使用过的小功能罗列出来. 一.项目在设备上得图标及名称的设定 1).图标:在项目中把你想要用得项目图标添加到项目中并且改名为icon(必须为png格式). 2).名称:在项目的Info.plist文件中有Key为Bundle display name一行的Value值改为自己所需要的名称即可 二.在程序启动还未进入程序起始界面前展示的Image 在工程选项中的General中

robotium脚本封装为APK,实现脱离手机数据线,使用按钮点击控制用例运行的小功能

最近一直在完成一些robotium的小功能,用来更方便的完成一些小功能的测试,或者可以说用来娱乐吧,幸得群内大神思路指点,就此引申,终于把这个功能得以实现 ---------------将robotium脚本封装为APK,使用按钮控制用例运行覆盖程度,测试结果以简单的xml文件输入到手机SD卡目录下---------------------- 废话不多说,转正题: 一.首先明确一点,这篇文章,是在你所编写的robotium脚本运行无异常的前提下实施 二.阐明思路: 1.我们需要一个运行良好的,逻

iOS 常用小功能 总结

常用小功能 iOS中的很多小功能都是非常简单的,几行代码就搞定了,比如打电话.打开网址.发邮件.发短信等 打电话 方法一(不被采用): 拨号之前会弹框询问用户是否拨号,拨完后能自动回到原应用 NSURL *url = [NSURL URLWithString:@"telprompt://10010"]; [[UIApplication sharedApplication] openURL:url]; 缺点 因为是私有API,所以可能不会被审核通过 方法二(推荐使用): 创建一个UIWe

谷歌app二次验证码与微信小程序二次验证码对比实测

下面我就跟大家实测一下关于两款验证码的使用对比 NO.1:下载安装 谷歌二次验证码下载方式如下: 1.通过扫描交易所中二维码(目前所有交易所中都是提供下载二维码的) 2.手机应用商店搜索"Google Authenticator"进行下载 微信小程序下载方式如下: 1.进入微信直接搜索"二次验证码"即可 1.谷歌需要去下载app(费流量,有wifi和土豪忽略),微信不需要,直接使用! 2.搜索方面谷歌需要一连串的英文字母,比较复杂这个对我而言就比较难接受了(我是英语

使用GO语言实现的日志集中查看的小功能.

程序分为站点端和中心端(相当于一个proxy). 这个小功能主要是解决,程序经常让我们去拖日志,特别烦.所以做个小程序.使程序可以自己去线上查看. 有个问题是,不能把游戏服务器暴露出来,还有就是不能占用业务机器的公网带宽. 这个小程序主要就是中心端(proxy)通过内网获取文件,然后转发给访问端. 中心端主要有两个文件,一个是程序文件.一个是我命名为json的文件(主要是根据ID来分辨分站) 主程序文件内容: package main import ( "encoding/json"

小功能——类似微信里,评论内容里面,点击每个人的用户名进入个人主页

项目里的朋友圈页面,每幅图片的评论内容里面,有不同的用户进行评论,起初想法是点击用户名直接进行回复,后来看微信都是点击评论内容进行回复评论的发起人,这个好做,把这个textview绑定一个监听器就ok了 后来再一想,如果要实现类似微信点击用户名就进入用户的主页,怎么让用户名可以点击呢? 现在父布局下面在new一个水平布局的linearlayout,然后根据把每个用户.包括评论内容都设置进textview里面,然后通过linearlayout的addview()方法,把这些textview添加进去

C#、Java中的一些小功能点总结(持续更新......)

前言:在项目中,有时候一些小的功能点,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小功能点,以备用,并持续更新...... 1.禁用DataGridView表头的排序功能 1 /// <summary> 2 /// 禁止点击列表头进行排序 3 /// </summary> 4 /// <param name="dgv">当前DataGridView控件</param> 5 private

用angular方法简单实现了吃了么搜索小功能,还不太完善,后续会继续添加新内容。

最近接触了Angular框架,今天用里面的http请求方法做了一个小的案例,是一个查询地名获取附近美食的小案例.还不太完善,后面面有时间会继续添加新的内容.这个小案例没有用到任何的jQuery与原生js方法. 先上HTML结构代码与HTML结构中的angular指令. <body ng-app="app"> <div ng-controller="con" id="con"> <h1>吃了么</h1>

思科命令配置小技巧二:macro命令

在 思科命令配置小技巧一中,我们谈到,使用range命令可以简化我们的配置 但是如果我们经常对一组不连续的端口进行操作 比如 interface-range  fa1/1 ,fa1/3 ,fa1/5 ,fa1/7 ,fa1/11 即使使用range命令也会显得很繁琐 我们总想越简单越好(命令敲再多,工资还是那个数,要是按命令字数算工资多好) 此时交换机的宏命令就派上用场了 suzhouxiaoniu(config)#define interface-range abc fa1/1 ,fa1/3