C语言中指针的指针简单理解。做下笔记,记录下学的成果。
定义
如果一个指针变量存放的又是另一个指针变量的地址,则称这个变量为指向指针的指针变量或指向指针的指针。
如下图所示:
一直想写PHP扩展开发教程,真正要写的时候不知道从何下手,也总感觉理解不到位。先入门下手,以后再分享调用C开发的.so动态库。不得不说PHP的成功原因之一有大量可以使用的扩展。
1、开发未支持的技术。比如想让PHP支持新的技术或者数据库等。
2、应用非常注重效率。
项目的需要将汉字转换为首字母。特百度一番,找到了一个还不错的。经过验证,性能还不错的。
测试代码如下:
$str = "忠诚于梦想的人才可能胜利\n"; echo "开始转换\n"; $pinyin = new Pinyin(); echo "\n转成带无声调的汉语拼音 \n"; echo $pinyin->TransformWithoutTone($str)."\n\n"; echo "转成带有声调的汉语拼音 \n"; echo $pinyin->TransformWithTone($str)."\n\n"; echo "转成汉语拼音首字母 \n"; echo $pinyin->TransformUcwords($str)."\n\n";
MySQL查询重复记录方法其实很简单。知道查询重复记录的方法后,自然要了解如何删除重复记录的方法。做下笔记记录下各个操作SQL语句、简单理解和使用过程中遇到的问题。
SQL语句如下:
select * from table where tableId in (select tableId from table group by tableId having count(tableId) > 1)
原理:用哪些系列作为重复的标准,当这些列重复的个数大于1的情况下,判断此行记录为重复的。
从网上学习根据经纬度计算距离的方法并且已验证。所以直接上代码:
/** * 根据两点间的经纬度计算距离 * @param $lng1 * @param $lat1 * @param $lng2 * @param $lat2 * @return int */ function getDistance($lng1, $lat1, $lng2, $lat2) { //将角度转为狐度 $radLat1 = deg2rad($lat1);//deg2rad()函数将角度转换为弧度 $radLat2 = deg2rad($lat2); $radLng1 = deg2rad($lng1); $radLng2 = deg2rad($lng2); $a = $radLat1 - $radLat2; $b = $radLng1 - $radLng2; $s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2))) * 6378.137 * 1000; return $s; }
1、返回的单位是米(m)。
2、Google地图坐标和百度地图坐标相差1m左右。
最近接触一个项目,需要根据经纬度计算附近的点。数据量为20w。
如果通过foreach循环MySQL数据库中经纬度,然后再结算距离,速度和性能都会很慢。学习了网上一个方法,特记录下来:
算出当前经纬度周围的矩形的四个点,然后使用经纬度去直接匹配数据库中的记录。
红色部分为要求的搜索范围,绿色部分我们能间接得到的结果范围。