资讯专栏INFORMATION COLUMN

PHP学习 Day 2 REPL 和 包管理

microelec / 1739人阅读

摘要:包管理试用了,新一代的包管理器,感觉不错。习题答案习题见图书优惠活动,计算需要付的金额。文件读写函数有,表示追加,锁定文件,避免别的进程同时读写。

最新版

Debian Wheezy下的PHP是5.4的,day0时说图方便就装了5.4。但是看文档是5.5的,所以琢磨着还是用最新版算了。

Debian Wheezy有dotdeb.org提供php-5.5。安装很方便。

将下列内容加入/etc/apt/sources.list:

deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy all
deb http://packages.dotdeb.org wheezy-php55 all
deb-src http://packages.dotdeb.org wheezy-php55 all

添加GPG key:

wget http://www.dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg

好了,可以安装了:

sudo apt-get update
sudo apt-get install php5-cli
REPL

day0 我推荐了phpsh,后来 @samoay 推荐了 Boris,用下来比 phpsh 好用,而且 Boris 也是用 PHP 实现的。用一个 Python 实现的 PHP REPL 总是感觉怪怪的。

包管理

试用了 Composer,新一代的 PHP 包管理器,感觉不错。

习题

有一个city.txt文件,内容如下:

代码

    名称

110000

北京市

110100

市辖区

110101

    东城区

110102

    西城区

110103

    崇文区

110104

    宣武区

110105

    朝阳区

110106

    丰台区

(后略)

现在需要将数字全部剔除,生成一个新文件 area.txt,只包括地名。

依然是 @Green_leaves 出的题。

Day 1 习题答案

习题见Day 1

1. 图书优惠活动,计算需要付的金额。

基本的条件语句。短路的运用让代码更简短。

function price($shopping_list) {
  $total = array_sum($shopping_list);
  if ($total > 500) {
    $aftermath = $total - 200;
  }
  elseif ($total > 400) {
    $aftermath = $total - 120;
  }
  elseif ($total > 300) {
    $aftermath = $total -80;
  }
  elseif ($total > 200) {
    $aftermath = $total -50;
  }
  elseif ($total > 100) {
    $aftermath = $total -10;
  }
  else {
    $aftermath = $total;
  }
  return $aftermath;
}
2. 文件读写

PHP函数有Flag,FILE_APPEND表示追加,LOCK_EX锁定文件,避免别的进程同时读写。


# 将we"re the sfer!写入sf.txt $to_write_file = "sf.txt"; $to_write_content = "we"re the sfer!"; file_put_contents($to_write_file, $to_write_content); # 将www.baidu.com内容追加sf.txt file_put_contents($to_write_file, "www.baidu.com", FILE_APPEND | LOCK_EX);
3. 匹配图片名称

PHP里的正则使用 preg 系列函数,让我感到诧异的是居然正则表达式要用 / 包起来…… 人家语法层面原生支持正则表达式的语言这么做还有道理,你都用函数了何必如此?


# 获取

Day 0 - 5 列表

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20639.html

相关文章

  • PHP学习之路 目录

    这个系列就暂时告一段落了。这是一个目录。 Day 0 起步 Day 1 基本语法 Day 2 REPL 和 包管理 Day 3 语言参考 Day 4 语言参考(下半篇) Day 5 练手程序

    liaosilzu2007 评论0 收藏0
  • 【Node Hero】2. 使用 NPM

    摘要:网站和使用同样的注册库来显示模块以及查找模块。使用在上一章开始使用中,当创建文件时,已经遇到了。此外,全局命名空间只包含公共模块。通过引入作用域包来解决此问题。下一步异步编程下一章学习使用回调和实现异步编程的原理。 本文转载自:众成翻译译者:网络埋伏纪事链接:http://www.zcfy.cc/article/1749原文:https://blog.risingstack.com/n...

    CarterLi 评论0 收藏0
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结

    摘要:不过除了使用加密,还可以使用原文链接使用来调试应用程序的数据以及使用一些总结参考资料参考资料使用来调试你的参考资料框架填充中文数据测试数据 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结 [toc] 今天我们将讨论如何使用Laravel的一些鲜为人知的功能来快速读取Laravel应用程序中的数据。我们可以使用Laravel的手工内置php artisan...

    simon_chen 评论0 收藏0
  • PHP学习 Day 1 基本语法

    摘要:语法基础如同昨天所说,代码必须用起始标签和结束标签包起来。和的标签在文档中合法,所以中加入代码,不会破坏文档的合法性。将换行视作空格,所以需要用分号标明语句的结束。将写入,并将内容追加到。 PHP语法基础 如同昨天所说,PHP代码必须用起始标签()包起来。有其他简写形式,但是不建议使用,因为简写形式是否能工作,取决于PHP的配置。 的标签在XML文档中合法,所以XHTML中加入PH...

    苏丹 评论0 收藏0

发表评论

0条评论

microelec

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<