书山有路勤为径,学海无涯苦作舟。

0%

前言:
安装了linux后,安装VM tools是必要的,功能自不必多说。比如我当时的客户机的屏幕很大,不能适应宿主机。

过程:
1.右击虚拟机右下角CD/DVD————设置————使用iso镜像文件————选择VMware workstation安装目录里linux.iso。
同时你可以看到有windows.iso,solaris.iso,linux.iso,这些都是在不同系统里安装vmware tools所需的镜像文件。

2.选择后,重启客户机。开机后,有的说会在桌面上看到VMware tools的安装文件,有的说直接默认打开了,但是我没有遇到上述两种情况,我在主文件夹左侧导航里设备那找到了VMware tools的安装压缩包,
但又发现一个问题,无法像网上那样用命令找到,虽然看到目录是media,但是在cmd里始终是找不到的。
只好在设备那里打开VMware tools的驱动目录,复制到主文件夹去。
然后解压缩,使用命令或者右键都可以。
命令就用tar zxvf xxx.tar.gz,默认解压到当前目录,然后cd进入这个解压后的目录,
执行安装文件:sudo ./vmware-install.pl。
然后一路回车就是了,有兴趣的也可以看看安装时的提示。安装完后重启虚拟机。
反复的试试虚拟机工具栏————视图——————立即适应客户机。然后虚拟机的窗口就能在宿主机中完美的显示出来了。如果不行的话,也可以试试视图里面其他的调整,直到满意为止。

remark:上次安装的时候因为强制取消了一些更新,这次一看竟然有300多MB,什么程序的更新,系统的更新,不认识的,各种更新都有。想想还是更新下吧。

前言:
今天学习php操作mysql

过程:

1.连接mysql
mysql_connect(servername, username, password)
servername:默认 localhost:3306

2.给出一个综合实例
<?php //连接mysql $con = mysql_connect("localhost", "root" , "root"); //判断连接是否成功,失败则打印错误信息并中断 if(!$con){ die("can't connect db" . mysql_error()); } echo("connect succ"); //创建一个名为“phpdb1”的数据库,失败则打印错误信息 if(mysql_query("create database phpdb1", $con)){ echo("Datebase created"); }else{ echo("Error creating datebase" . mysql_error()); } //选择phpdb1这个数据库 mysql_select_db("phpdb1",$con); //定义sql语句,插入表单传过来的数据 $insert_sql = "insert into posts(post_name, post_content) values ('$_POST[title]', '$_POST[content]')"; if(!mysql_query($insert_sql,$con)){ die("add post error".mysql_error()); } echo("add post succ"); //关闭数据库连接 mysql_close($con); ?>

 

 

3.查询的demo
`
$result = mysql_query(“select * from posts”);

echo “







“;
//遍历查询结果,并输出数据为HTML表格
while($row = mysql_fetch_array($result)){
echo ““;
echo ““;
echo ““;
echo ““;
echo ““;
}
echo “

ID

TITLE

CONTENT
“.$row[‘post_id’].”“.$row[‘post_name’].”“.$row[‘post_content’].”
“;
`
删除和修改的没什么特别的。



前言:

贴出下面要用到的下载地址:

vmware:http://www.vmware.com/cn/

注册码(摘自网上经网友测试过的,未经本人测试,仅为方便读者顺手):


MV4YN-0L38Q-2ZK60-XUA7K-AAZ18
JC6AP-D4H0P-TZ131-4A2QM-8CNP7
0U6UU-6AJDL-RZTK9-230Q0-8ARJQ
JG2TD-DJL95-FZZZ8-DU1NH-33GH7

VM汉化包:VM汉化包下载

鉴于vmware里面太多e文,还是用汉化版比较没压力。

ubuntu下载:http://www.ubuntu.org.cn/



 

1.下载VM并安装。

2.打开VM,新建虚拟机,照着点就是了。

3.基本上没啥好说的,注意一点的就是网络类型,有的推荐说NAT,但是我今天设置的NAT网络无法连接,然后我随便选了个,使用桥接网络。反正能连上就行(等会安装ubuntu要下载安装软件)。

4.新建好虚拟机后,就可以启动那个虚拟机,会自动启动装系统的程序,但是我今天遇到一个问题,刚开始装入iso文件的时候就提示无法识别系统,但是我没在意,继续新建虚拟机后,在启动的时候出现operating system not found,后来换了个iso文件,就可以了。

5.安装ubuntu系统没什么好说的,键盘布局我在想是不是要选英语美国的,还有汉语的,不过我没敢选,怕是哪个奇葩的中国人设计的键盘布局。在中国安装语言包的时候,等了半天,我也急着回家了,就干脆skip了,要个毛的语言包?

6.安装完后会发现启动的分辨率不是我们真机的分辨率,因为自带的是800多分辨率,自己在ubuntu设置里面找–显示–设置为真机的分辨率即可。

 

总体来说,安装linux还是挺傻瓜化的。。。

1.周末在家是不是太无聊了,如果没有地方玩的话,为什么不去公司加班呢????

2.住的离公司已经这么近了,为什么不在公司多加点班再走呢????

3.要么看书,要么上班,为什么要浪费宝贵的时间????

前言:
继续学习php的高级基础
过程:

1.session:
session_start();(写在html标签之前)
set:$_SESSION[‘var_name’]=1;
get: echo $_SESSION[‘var_name’];
isset可以用来判断是否设置了这个session变量。
终结:unset($_SESSION[‘var_name’]); or session_destroy();

tips:在””里面也可以用变量,可以用\阻止。

2.mail:

mail(to,subject,message,headers,parameters)
to:收件人
subject:主题 Message:内容(LF or \n 换行)
headers:(可选)附加标题,(CRLF or \r\n 分隔)
parameters:(可选,额外参数)

FILTER_SANITIZE_EMAIL 从字符串中删除电子邮件的非法字符
FILTER_VALIDATE_EMAIL 验证电子邮件地址
filter_var(var_name, filter)通过指定的过滤器过滤变量。
如果成功,则返回已过滤的数据,如果失败,则返回 false。

3.错误处理:
die(“错误信息”);输出错误信息并终止脚本。
创建自定义错误处理器:
error_function(error_level, error_message, error_file, error_line, error_context);
set_error_handler(“错误处理器的function name”);
trigger_error(“错误提示”,”E_USER_ERROR/E_USER_WARNING/E_USER_NOTICE”)触发错误
error_log()

 

4.异常处理

try:
throw:规定如何触发异常(也就是抛出异常),每一个throw必须对应至少一个
catch
catch:捕获异常,并创建一个包含异常信息的对象

自定义异常:

 
class customException extends Exception { public function errorMessage() { //error message $errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile() .': **'.$this->getMessage().'** is not a valid E-Mail address'; return $errorMsg; } }

set_exception_handler() 函数可设置处理所有未捕获异常的用户定义函数。
简而言之:如果抛出了异常,就必须捕获它。

 

5.过滤器

用于验证和过滤来自非安全来源的数据。

filter_var() 过滤单一变量 ex:filter_val($int, FILTER_VALIDATE_INT)
filter_var_array() 通过多个过滤器过滤多个变量
filter_input 获取一个输入变量并过滤
filter_input_array 获取多个输入变量,并通过多个过滤器进行过滤

Validating和sanitizing
v:验证输入,有严格的格式规则,成功则返回预期的类型,否则返回false
(针对这个返回的事,我特意试了下,其实是如果符合格式,就返回那个值,如
果输出的话就输出那个值,如果不符合格式,返回的是false,但是输出这个返回值
,是不会输出的。)
s: 用于允许或禁止字符串中指定的字符。无数据格式规则,始终返回字符串。

 
`还是给出一些例子来看吧:
<?php
$var=300;

$int_options = array(
“options”=>array
(
“min_range”=>0,
“max_range”=>256
)
);

if(!filter_var($var, FILTER_VALIDATE_INT, $int_options))
{
echo(“Integer is not valid”);
}
else
{
echo(“Integer is valid”);
}
?>
`

`

<?php
if(!filter_has_var(INPUT_GET, “email”))
{
echo(“Input type does not exist”);
}
else
{
if (!filter_input(INPUT_GET, “email”, FILTER_VALIDATE_EMAIL))
{
echo “E-Mail is not valid”;
}
else
{
echo “E-Mail is valid”;
}
}
?>
`

`

<?php
if(!filter_has_var(INPUT_POST, “url”))
{
echo(“Input type does not exist”);
}
else
{
$url = filter_input(INPUT_POST,
“url”, FILTER_SANITIZE_URL);
}
?>
`

`

<?php
$filters = array
(
“name” => array
(
“filter”=>FILTER_SANITIZE_STRING
),
“age” => array
(
“filter”=>FILTER_VALIDATE_INT,
“options”=>array
(
“min_range”=>1,
“max_range”=>120
)
),
“email”=> FILTER_VALIDATE_EMAIL,
);

$result = filter_input_array(INPUT_GET, $filters);

if (!$result[“age”])
{
echo(“Age must be a number between 1 and 120.
“);
}
elseif(!$result[“email”])
{
echo(“E-Mail is not valid.
“);
}
else
{
echo(“User input is valid”);
}
?>
`

`

<?php
function convertSpace($string)
{
return str_replace(“_”, “ “, $string);
}

$string = “Peter_is_a_great_guy!”;

echo filter_var($string, FILTER_CALLBACK,
array(“options”=>”convertSpace”));
?>
`

前言:
学习php的高级基础,何为高级基础,w3school写php高级,我感觉还是基础,故曰高级基础。
目标:
进一步掌握php的基础。
过程:

1.日期:
格式:date(“Y/m/d”)和date(“Y/m/d”,时间戳)
支持/ . - 三种符号
mktime(hour,minute,second,month,day,year,is_dst)获得时间戳
注意month在day前面。 is_dst可选,已经被废弃了。

2.引用:
<?php include(“header.php”); ?> 引用错误仍继续执行其他的
<?php require(“header.php”); ?> 引用错误则中断。(推荐)

3.文件
fopen 打开
fclose 关闭
feof 判断是否到达文件末端
fgets 逐行读取文件
fgetc 逐字符读取文件

4.文件上传
表单:enctype=”multipart/form-data”

一个简单的处理文件上传的php代码:
`
<?php
//限制文件类型为图片,限制大小小于20kb
if ((($_FILES[“file”][“type”] == “image/gif”)
|| ($_FILES[“file”][“type”] == “image/jpeg”)
|| ($_FILES[“file”][“type”] == “image/pjpeg”))
&& ($_FILES[“file”][“size”] < 20000))
{
if ($_FILES[“file”][“error”] > 0)
{
echo “Return Code: “ . $_FILES[“file”][“error”] . “
“;
}
else
{
//输出文件名,类型,大小,临时存储的目录。
echo “Upload: “ . $_FILES[“file”][“name”] . “
“;
echo “Type: “ . $_FILES[“file”][“type”] . “
“;
echo “Size: “ . ($_FILES[“file”][“size”] / 1024) . “ Kb
“;
echo “Temp file: “ . $_FILES[“file”][“tmp_name”] . “
“;

//判断文件是否存在,不存在就把文件从临时目录移动过来。
if (file_exists(“upload/“ . $_FILES[“file”][“name”]))
{
echo $_FILES[“file”][“name”] . “ already exists. “;
}
else
{
move_uploaded_file($_FILES[“file”][“tmp_name”],
“upload/“ . $_FILES[“file”][“name”]);
echo “Stored in: “ . “upload/“ . $_FILES[“file”][“name”];
}
}
}
else
{
echo “Invalid file”;
}
?>
`

5.cookie
cookies:写到html标签前
设置:setcookie(name,value,expire,path,domain)
eg:setcookie(“user”, “Alex Porter”, time()+3600);
setrawcookie() 防止url编码
取回:$_COOKIE[“user”];
isset:判断是否设置了cookie. return true/false
删除cookie:设置过期日期为过去
setcookie(“user”, “”, time()-3600);
浏览器不支持cookie就用表单提交了。。。:

小结:php的函数很强大,封装这么深对程序员有利有弊。
高级基础得慢慢来,先把这当一小节吧。

今天做了一次面条,有必要介绍一下。

1.把剩菜热一下,放在碗里。
2.烧一锅水,烧到开为止。
3.把面条放到里面,有筷子一直搅。
4.待到面条中间有白线(砖家点评:面条本来是生的,是白色的,放锅里煮慢慢熟,就不会是白色,等到面条中间有一点点白的时候就快完全熟了,关火让面条自己完全熟。)
5.把面条盛到剩菜的碗里,可以放入自己想要的调料什么的,美味的面做好了:)

remark:没有拍图,可惜了…

前言:
今天学习php基础语法
目标:会php基础语法
过程:

1.php的语法:
<?php

?>
也可以<? ?>(不推荐)
echo:输出
2.声明变量:
$var_name = value;
不必声明数据类型

3.操作字符串:
. 连接字符串,如a.b结果为ab
strleng(“hello”) 计算字符串长度
strpos(“source”,”o”) 搜索第二个参数在第一个参数里面的index,未匹配返回false

4.运算符:
算数+-/% ++ –
赋值:= += -=
= /= .= %=(例:x.=y 意为x = x.y)
比较运算符:
== != > < >= <=
逻辑运算符:
&& || !

5.条件语句:
if else
switch

6.数组:

a.数值数组
带有数字 ID 键的数组:
$names = array(“Peter”,”Quagmire”,”Joe”);
b.关联数组
数组中的每个 ID 键关联一个值
$ages[‘Peter’] = “32”;
$ages[‘Quagmire’] = “30”;
$ages[‘Joe’] = “34”;
=>是键值映射的关系
$ages = array(“Peter”=>32, “Quagmire”=>30, “Joe”=>34);
c.多维数组
包含一个或多个数组的数组

7.循环
while, do while, for, foreach
foreach($arr_name as $value_name){
echo $value_name
}

8.函数:

9.表单:
$_GET 变量用于收集来自 method=”get” 的表单中的值。
$_GET[“age”]; 获取表单里面name为age的值
get最多100个字符

PHP 的 $_REQUEST 变量包含了 $_GET, $_POST 以及 $_COOKIE 的内容。
PHP 的 $_REQUEST 变量可用来取得通过 GET 和 POST 方法发送的表单数据的结果。
$_POST 变量用于收集来自 method=”post” 的表单中的值。

小结:w3schol尼玛太坑爹!
运算符,数组,有空复习一下。

前言:

从今天开始学php

目标:

先安装php和搭建环境,并写一个HelloWorld。

步骤:

1.下载php和apache,貌似有一些绿色版的,我没用过,先贴出大众的方法。

下载PHP5:    http://cn2.php.net/distributions/php-5.2.6-Win32.zip
下载apache: http://down.chinaz.com/soft/18000.htm

2.解压php到如d:/php,

3.找到php目录下的 php.ini-dist或 php.ini.recommended文件,重命名为 php.ini,

  并复制到系统盘的windows目录下(以c:\windows为例). 

4.再把php目录下的php5ts.dll,libmysql.dll复制到目录 c:\windows\system32下。

5.把php5\ext目录下的php_gd2.dll,php_mysql.dll,php_mbstring.dll文件复制到c:\windows\system32下。

6.安装apache

一直next,domain什么的就随便输入,mail写自己的也未尝不可。

设置/conf/httpd.conf:

查找DocumentRoot 设置为放网页文件的文件夹,不变也可以,

查找DirectoryIndex 在index.html后添加indexphp index.htm,多个用空格分隔。

7.

打开c:\windows\php.ini文件(关联到mysql)
设置扩展路径
查找 extension_dir 有这么一行extension_dir = “./“
将此行改成
extension_dir = “C:\php5\ext”
其中C:\php5是你安装php的路径。路径不正确将无法加载dll
(注意:有些php版本是 ;extension_dir = “./“ 要把前面的分号去掉)
查找 extension
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_mysql.dl
把上面3项前面的分号去掉。

将doc_root 改为apache里面放网页的目录,如 “d:\Program Files\Apache Software Foundation\Apache2.2\htdocs”;

找到 ;session.save_path = “/tmp” ,将’;’去掉,设置你保存session的目录,如session.save_path = “D:/php/session_temp”;

8.时差设置

查找date.timezone有这么一行
;date.timezone =
将;去掉,改成
date.timezone = PRC

9.php+apache的设置

设置httpd.conf,

 LoadModule php5_module “d:/php/php5apache2_2.dll”

(特别注意这一条,很多地方是调用php5apache2.dll,这样在运行PHP代码时会提示httpd.exe应用程序错误)
      AddType application/x-httpd-php .php
      AddType application/x-httpd-php .htm
      (.htm, .php为可执行php语言的扩展名,也可加html, php3, php4,甚至txt)

查找 AddType application/x-gzip .gz .tgz
在此行后加入一行
AddType application/x-httpd-php .php (记住:前边有一个空格哦!!!)
这样apache就可以解释php文件了

10.在web根目录(即apache_home/htdocs)新建test.php,内容如下

`

test


<?php
echo “hello world”;
phpinfo();
?>


`

 

 

重启apache服务,访问http://localhost/test.php

当出现hello world和php的一些信息的时候,说明成功了。有问题的话,请检查配置!

 

 

附测试连接mysql的代码:

 

<?php $link=mysql_connect("localhost","root","12345"); //12345改成你的mysql密码 if(!$link) echo "失败!"; else echo "成功!"; mysql_close(); ?>

 

参考资料:

http://zhidao.baidu.com/question/74350698.html

http://www.cnblogs.com/angelox/archive/2008/10/09/1306732.html

在eclipse里面开发java项目的时候,偶尔会遇到无法导包的问题,

如:

import com.sun.management.OperatingSystemMXBean;
无法导入。本来想导com.sun.management包内的,却只有java.lang包的这个类。
com.sun.management.OperatingSystemMXBean位于java lib的rt.jar,
在eclipse里面可以看到项目引用的JRE System Library里面有rt.jar,
并且可以打开看到也有com.sun.management这个包,里面也有OperatingSystemMXBean这个类,
但是为何总是无法导入呢。
偶然的发现一个解决办法:
在项目的java Build Path-Libraries里面,把JRE System Library Remove掉,然后再重新添加Library,
点击右边的Add Library-JRE System Library-就默认选择workspace default JRE-finish。
遇到这样奇葩的问题,就这样试试吧:)