为了避免在一个帖子下内容过长,每月开新的帖子学习日记
打算开始系统的长久的学习web开发(偏后端)。
为了克服自己做一件事情不容易坚持的坏毛病,计划在 OurCoders上面记录学习日记,接受大家监督。
目标:
在年底前做出一个还算过的去的web产品并上线开始服务。(具体正在构思中)
方法:
因为本身有C++背景,同时学过点Python和Django,所以打算系统学习下php语言(毕竟php做东西更快,应用更广,而且未来工作机会也更多),以项目为驱动。
在每天工作之余坚持学习,每天打卡记录学习内容和学习感悟,至少每周有5天或者5天以上的记录,允许在两天内补交学习记录。
不贪大求全,每天有所进步就好。
以到今年年底2015年12月31号为期,到时再来撰写总结。
祝自己好运 :)
[2015-09-01]
《PHP和MySQL web开发》第20章
使用网络函数 抄书上的代码实现了访问yahoo来获得股票的价格的功能
代码见于 https://github.com/easyfly007/practice_php/tree/master/chap20
打算放假期间做个天气预报的功能
要开始做点东西出来了。 也开始感受到PHP的函数的命名的混乱了
[2015-09-02]
利用网络API获取天气预报信息
我想着对于天气预报应该有比较成熟的接口,然后上网一查,找到这个 https://www.showapi.com/api/lookPoint/9/2
好在天气预报是免费的,赶紧申请了,上面给了PHP调用的示例,比较简单,于是很快就实现了。 确实能够获得我提交的地名的天气预报信息。
虽然界面有待美化,不过应该问题不大。周末进行修改下,争取上线。
代码见于:
https://github.com/easyfly007/practice_php/blob/master/chap20/weather/weather.php
运行之后就能跑出结果来了。
当然因为我还不懂json,所以需要继续格式一下这个输出的内容。
结果如下:
20150902232813
sorted para is:area杭州needHourData1needIndex1needMoreDay1showapiappid****showapitimestamp20150902232813****
md5 result is :****
http://route.showapi.com/9-2?showapiappid=****&area=%E6%9D%AD%E5%B7%9E&needMoreDay=1&needIndex=1&needHourData=1&showapitimestamp=20150902232813&showapi_sign=****
json is :0
stdClass Object ( [day] => 20150902 [dayairtemperature] => 32 [dayweather] => 多云 [dayweatherpic] => http://appimg.showapi.com/images/weather/icon/day/01.png [daywinddirection] => 无持续风向 [daywindpower] => 微风<10m/h [index] => stdClass Object ( [beauty] => stdClass Object ( [desc] => 请选用防脱水化妆品。 [title] => 防脱水 ) [clothes] => stdClass Object ( [desc] => 建议穿短衫、短裤等清凉夏季服装。 [title] => 炎热 ) [cold] => stdClass Object ( [desc] => 感冒机率较低,避免长期处于空调屋中。 [title] => 少发 ) [comfort] => stdClass Object ( [desc] => 多云,有些热。 [title] => 较不舒适 ) [glass] => stdClass Object ( [desc] => 建议佩戴透射比为1级的浅色太阳镜 [title] => 必要 ) [sports] => stdClass Object ( [desc] => 户外运动请注意防晒。 [title] => 较适宜 ) [travel] => stdClass Object ( [desc] => 微风,虽天气稍热,但不会影响心情。 [title] => 适宜 ) [uv] => stdClass Object ( [desc] => 涂擦SPF大于15、PA+防晒护肤品。 [title] => 中等 ) [washcar] => stdClass Object ( [desc] => 无雨且风力较小,易保持清洁度。 [title] => 较适宜 ) ) [nightairtemperature] => 22 [nightweather] => 多云 [nightweatherpic] => http://appimg.showapi.com/images/weather/icon/night/01.png [nightwinddirection] => 无持续风向 [nightwindpower] => 微风<10m/h [sunbegin_end] => 05:38|18:18 [weekday] => 3 )
[2015-09-06]
《TCP/IP详解 卷1协议 》第一章概述
看书,无代码提交。
之前在看php网络相关的内容的时候,感觉有点费劲,于是就直接买了这本书来看,其目的并不在于学通这本书,而是在这本书看得一知半解的情况下,足够能够对php的相关内容有所理解。作为非科班人士面对这些理论基础,只有硬着头皮看了。
btw,前面三天放假,基本上没有怎么学习,惭愧惭愧,主要是在忙一件更加重要的事情,身心疲惫。
[2015-09-09][2015-09-10]
django基础
因为周五要给同事们讲解python的django框架,这两天把 django book的内容,从第一章到第七章重新看了一遍,确保还记得内容。django book是我见过的差不多最好的学习django的资料了吧。
http://djangobook.py3k.cn/2.0/
[2015-09-11]
《PHP和MySQL Web开发》第22章图像处理
代码见于
https://github.com/easyfly007/practice_php/tree/master/chap22
1. 安装
http://www.php.net/manual/zh/install.windows.extensions.php
在windows下gd2.dll 是自带安装的,只要在 php.ini文件中打开就可以了
1.1 确保 extension_dir = C:phpextensions 指向你的在php 在扩展包的目录
1.2 确保 ;extension=php_bz2.dll 前面的注释符号;去掉
2. 图像格式
JPEG 有损
PNG 无损
GIF 无损
3. 建立图像的基本流程
3.1 创建图像的背景
3.2 绘制图像轮廓,或者输入文字
3.3 输出最终的图像
3.4 清楚所有的资源
4. 创建图像
4.1 可以新建一个图像
调用函数
$im = imagecreatetruecolor($width, $height);
返回一个新图像的标识符,类似于文件句柄
4.2 从已有图像文件打开
$im = imagecreatefrompng('imagename.png');
$im = imagecreatefromjpeg('imagename.jpeg');
$im = imagecreatefromgif('imagename.gif');
5. 绘制图像
5.1 选择绘制的颜色
$black = imagecolorallocate($im, 0,0,0);
$white = imagecolorallocate($im, 255, 255, 255);
$blue = imagecolorallocate($im, 0, 0, 255);
$red = imagecolorallocate($im, 255, 0, 0);
5.2 绘图函数
imagefill($im, 0, 0, $blue);
绘图填充区域的起始坐标 0,0,用$blue 填充
画一条线
imagestring($im, 0, 0, $width, $height, $white);
起始点(0,0),终点($width, $height), 颜色为$white
添加字符串标签
imgetstring($im, 4, 50, 150, 'sales', $white);
字体为4, 位置为(50, 150), 内容为 ‘sales', 颜色为$white
添加字符标签
bool imagechar ( resource $image , int $font , int $x , int $y , string $c , int $color )
6. 输出图形
可以将这个图像直接输出到浏览器或者文件
6.1 Header('Content-type: image/png');
设置文件输出格式,可以用的包括:
超文本标记语言文本 .html,.html text/html
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
GIF图形 .gif image/gif
JPEG图形 .ipeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar
Header()也可以用来进行重定向,用于加载一个不同的页面
Header('Location: http://www.domain.com/new_homepage.html');
6.2 输出图像
imagepng($im);
不同的函数包括
imagejpeg($im);
imgetgif($im);
7. 清理
imagedestroy();
imagedestroy($im);
[2015-09-13][2015-09-14]
《PHP和MySQL Web开发》第22章 创建图像
首先是利用树上的代码,写了一个关于投票的页面,能够在后台运行起来,通过MySQL的交互,显示投票结果
然后我就想写一个可以自定义投票内容的页面。
代码见于
https://github.com/easyfly007/practice_php/tree/master/chap22
[2015-09-15]
基于《PHP和MySQL Web开发》一书第22章的关于投票系统的内容,进一步开发成包含能够创建投票的一个功能
代码见于
https://github.com/easyfly007/practice_php/tree/master/chap22/vote2
改变了背后的SQL 表的结构,用一个表保存每个 投票的voteid, votename, 另一个表保存每个vote的选项,有 itemid, voteid, itemname, itemcnt.
大概花了半天时间吧,网上查阅了一些PHP MySQL函数的用法,基本实现了功能。
界面是丑了点。
[2015-09-16]
拓展《PHP和MySQL Web开发》一书第22章的关于投票系统的内容,增加删除投票的功能
在创建投票的时候可以设置密码,利用该密码可以删除投票
密码在数据库里面用md5保存,为了安全性考虑是否应该进一步加盐?
下一步,准备在学习session之后增加防止刷票的功能,这就要增加用户或者判别ip或者邮箱了。
慢慢来吧。
[2015-09-17]
《SQL必知必会》
晚上回家不想打开电脑,就在kindle上面看书,看的是《SQL必知必会》这本小册子。
基本上里面只讲怎么用SQL对数据库进行操作,没有啥理论的内容,属于实用型的手册。
之前翻过一遍,但是总归由于缺乏实际操作经验而泛泛。
现在通过PHP做过了几个MySQL操作的实践之后,看起来能够了解的更多了。
感觉这本书可以在不同的时候翻看,然后把所有的SQL语法熟记于心,免得临时写代码的时候又要去网上搜索。