JSON

PHP经验总结

字号+ 作者:H5之家 来源:H5之家 2017-01-09 18:01 我要评论( )

简述 接触PHP差不多2年,从懵懂到入门,再到追求稳定高效的高阶级学习,我慢慢的积累一些PHP编程经验,我本人记性不好,所以把这些经验记下来,慢慢累积,乐自助

简述

接触PHP差不多2年,从懵懂到入门,再到追求稳定高效的高阶级学习,我慢慢的积累一些PHP编程经验,我本人记性不好,所以把这些经验记下来,慢慢累积,乐自助人,何乐不为呢?下面是我面对一些问题所采取处理解决方案,希望对大家有所帮助,同时也欢迎大家指正。

问题&解决方案 1、PHP对特殊字符串的处理方案
  • 普通的字符串截取,一般采用substr()或者mb_substr(),需要说明的是substr()和mb_substr()仅限于英文阿拉伯数字的处理,对中文的截取处理是很不友好的,不仅涉及到字符编码gbk和utf-8的区分,还有一些乱码情况,因此对于字符串的截取,特别是包含中文的字符串,首推正则匹配处理,下面附上解决方案的案例:

  • <?php /** * * @version 1.0 * @desc 处理一些特殊字符串的一些方法,比较多的是采用正则匹配的方法 * @author Rongx * @since 2015.11.26 * */ // * 匹配xxx-xxx和xxx的情况 $url1 = '/college/pku/'; $url2 = '/college/pku-aaa/'; preg_match_all ( '|/college/(\w+(\-\w+)?)|i', $url2, $urlArray ); echo "<pre>"; print_r($urlArray); // * 匹配获取中文()里面的内容 header("Content-type: text/html; charset=utf-8"); $title = "不知道什么鬼的学校(北京大学,南京大学)"; preg_match_all( '/((.+?))/', $title, $resultArr); echo '目标字段:' . $title . '<br>'; echo "<pre>"; print_r($resultArr); // * 匹配字符串内的指定中文字符 header("Content-type: text/html; charset=utf-8"); $chstr = "交通运输大类"; $match = "/类|类大/"; $chstr = preg_replace($match,"",$chstr); echo $chstr; ?>
  • 当然了,字符串处理还有其他办法,不过我一般是用上述两种,要不正则匹配,要不字符串截取,如果你有更好更优的解决方案,欢迎分享你的解决方案。

  • 2、读写文本数据的处理解决方案 <?php // * 写入文本 $data_json = json_encode ( $data );// 写入文本时file_put_contents方法只能将一个字符串写入文件,如选择json格式 FileClass::checkDir ( AUTO_SYNC_PATH . 'rongxDemo/' ); // 检查目录是否存在 $fileName = AUTO_SYNC_PATH . 'rongxDemo/' . "data.txt"; // 组装文件绝对路径,数据写入文本时文本的路径必须是绝对路径,不能是相对路径 $file = file_put_contents ( $fileName, $data_json ); // 写入数据 ?>
  • 这是一个简单的数据写入文本的案例,我有一个数组数据,我需要写入一个文本保存在服务器上,那么我首先要确定我要把文件存在哪里?确定好文本存储路径后,对数据进行转义处理,一般我会进行json转义处理,变成字符串后调用file_put_contents()方法进行数据写入文本操作,最终数据以json字符串的方式存储到服务器我指定的路径下。

  • 这里简单介绍一下file_put_contents()方法,中文解释就是将一个字符串写入文件,它有4个参数:file_put_contents();这里他们分别表示:要被写入数据的文件名,要写入的数据,一般来讲后面2个参数是不会用到的,所以我们确定好文件名和数据就可以 这个方法了,下面附上一个PHP官网的案例:

  • <?php $file = 'people.txt'; // Open the file to get existing content $current = file_get_contents($file); // Append a new person to the file $current .= "John Smith\n"; // Write the contents back to the file file_put_contents($file, $current); ?> <?php // * 读取文本 FileClass::checkDir ( AUTO_SYNC_PATH . 'rongxDemo/' ); // 检查目录是否存在 $fileName = AUTO_SYNC_PATH . 'rongxDemo/' . "data.txt"; // 组装文件绝对路径,数据读取文本时文本的路径也是要求是绝对路径 // 判断文件是否存在 if (file_exists ( $fileName )) { $file_data = file_get_contents ( $fileName ); // 读取文本数据 } $data = json_decode ( $file_data ); // 解析json封装过的数据 ?>
  • 这里是一个简单的文本数据读取的案例,我在确定一个文本路径后,调用file_get_contents()方法进行文本数据读取,从而获得文本数据,期间有必要还需要个json或者其他编码转义处理。

  • 这里简单介绍一下file_get_contents()方法,中文解释就是将整个文件读入一个字符串,它有5个参数:file_get_contents();这里他们分别表示:要读取的文件的名称,另指路径,后面三个参数基本不会用到,甚至第二个参数都很少见,所以重点是确定你要读取文件的路径,是绝对路径。下面附上PHP官网的例子:

  • <?php // <= PHP 5 $file = file_get_contents('./people.txt', true); // > PHP 5 $file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH); ?>
  • 总结一下读写文本的处理,一般来讲,渡读和写是相互相成的,你需要确定你的文本存放路径(目录位置),因为无论读还是写,你都是操作那个目录下的文件,对于同一个业务来讲,所以有了路径之后,接下来就是数据处理,一般来讲我建议在数据在写入文本前先进行字符串转换,因为数据写入文本的方法对字符串类型的数据更加友好,能避免出现数据丢失的情况。如果大家有什么更好的处理方案,欢迎分享,同时欢迎指正我的问题。

  • 3、数组顺序处理和头尾的增删操作处理解决方案
  • 数组的处理很常见,下面列举针对不同情况下的一些解决方案:

  • array_reverse(返回一个单元顺序相反的数组):换言之就是把数组顺序进行倒序处理。

  • <?php // array_reverse()的使用案例 $input = array("php", 4.0, array("green", "red")); $result = array_reverse($input); $result_keyed = array_reverse($input, true); ?>
  • rsort(对数组逆向排序):同样是一个数组顺序进行倒序处理的方法。

  • <?php // rsort()的使用案例 $fruits = array("lemon", "orange", "banana", "apple"); rsort($fruits); foreach ($fruits as $key => $val) { echo "$key = $val\n"; } ?>
  • reset(获取数组第一个“首元素”):简单来讲就是将数组的内部指针倒回到第一个单元并返回第一个数组单元的值。

  •  

  • 1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • PHP解决JSON格式的中文显示问题

      PHP解决JSON格式的中文显示问题

      2017-01-08 14:00

    • PHPer 需要了解的 5 个 Composer 小技巧

      PHPer 需要了解的 5 个 Composer 小技巧

      2017-01-06 09:03

    • PHP转义Json的特殊字符

      PHP转义Json的特殊字符

      2017-01-05 12:00

    • php获取提交json数据

      php获取提交json数据

      2017-01-03 11:02

    网友点评