姚晨《别让爱迷路》完整版下载

最近浙江卫视热播《离婚律师》37集起换了主题曲。由姚晨演唱的离婚律师。网上找了很久终于在一个论坛找到了下载地址。

歌词:

这一路曲折又漫长
有许多鸟语和花香
忘了他 曾走在 你的身旁
这一段奔波太过匆忙
又是来不及回头张望
忘记他
在人的海洋
停一停你的脚步
别把爱丢下迷了路
松开已久的手
可以再次 紧紧握住
停一停你的脚步
等一下身后的幸福
空了太久的心
可以再次 拥有他的 爱情永驻
下载地址: http://pan.baidu.com/s/1lLjPG 分享密码: uvjp

U盘安装 CentOS 6.4

前言:起先我还是习惯的安装CentOS 5.4,因为这个版本是我在实际使用中接触比较多的,但是也仅限制与在Server方面,并没太多的接触Desktop。这次接触Desktop版本主要是因为家里的HP笔记本年事以大,看个电影都已经发热严重,十分的卡。安装完CentOS 5.4后发现,他本身并不带Wlan连接驱动。后找了无线网卡驱动安装包在通过指令来连接网络。这里就不详细介绍CentOS 5.4无线网卡的驱动安装和配置了。毕竟我们今天要讲的主题是CentOS 6.4

安装工具:U盘一枚至少8G,你们想问我为什么要这么大么,因为CentOS 6.4 的DVD1.ISO就需要3.51G。

以下的安装是主要针对引导这一块的。

首先:使用晨风工作室的U盘启动盘制作工具,制作U盘。

下载地址:http://www.myfeng.cn/download/

这里说明下没必要必须用晨风的许多的U盘PE工具箱都会附带ISO文件引导功能,推荐他的主要原因是安装简单。主意这个安装过程会格式化U盘,请务必保存好相关数据。

下载CentOS 6.4:我是在网易开源镜像站下载的,速度还是相当一流的。

如果要安装32位版本:

ISO文件下载地址:http://mirrors.163.com/centos/6.4/isos/i386/

 必须下载:CentOS-6.4-i386-bin-DVD1.iso,可选下载:CentOS-6.4-i386-bin-DVD2.iso

引导文件下载地址:http://mirrors.163.com/centos/6.4/os/i386/images/

 必须下载:install.img

 

如果要安装64位版本:

ISO文件下载地址:http://mirrors.163.com/centos/6.4/isos/x86_64/

 必须下载:CentOS-6.4-x86_64-bin-DVD1.iso,可选下载:CentOS-6.4-x86_64-bin-DVD2.iso

引导文件下载地址:http://mirrors.163.com/centos/6.4/os/x86_64/images/

 必须下载:install.img

下载文件相信大家都没有问题,切记需要下载install.img这是用于引导安装程序。

 然后将下载到的ISO丢进刚才制作好的U盘根目录,在U盘根目录创建一个文件夹(images),把install.img丢进去,主意必须是images目录否则虽然成功引导了,但是安装到最后一步还是会报错。

PS:这里注明下晨风U盘启动的使用方法,启动后选择“【10】启动自定义ISO/IMG文件(DIV目录)”,然后“[17]列出目前所有可用设备”,找到U盘,然后选择ISO文件中的DVD1,切记这里要选择的是DVD1.ISO并非IMG文件。

 剩下的步骤CentOS 6.4跟CentOS 5.4的U盘安装方法就大同小异了,只是需要boot引导别装到U盘上去了就可以了,否则开机必须插U盘才能启动了。

这里推荐一篇脚本之家的文章:http://www.jb51.net/os/78318.html

图文教程里面有引导后安装的步骤,主意下此文中sda为硬盘。我在实际安装当中,sda为U盘,sdb才是硬盘,CentOS 6.4的U盘安装跟网上的CentOS 5.4的U盘安装是不同的,请一定检查清楚到底你的sda和sdb各是什么。

附上CentOS的CPU、RAM、SWAP使用率查看指令:

# top

JSP生成HTML,JSP生成TXT

最近碰到一个项目,做个弹窗程序,类似腾讯资讯。

因为客户的服务器已经运转了一个当地的大型信息门户,而系统架构是JSP的。只能使用JSP来开发,过程中碰到的主要用到了JSP采集页面,正则表达式获取具体数据,以及这篇文章讲到的生成静态HTML。求百度大神和谷歌大神许久,都没得到有用的信息。然后折腾了一天,写出这么一段东西。

主要使用了JAVA的io、util、text,以下是库调用代码。

1
2
3
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.text.*" %>

(io主要是用于文件生成,util用于时间获取,text用于格式化时间

获取系统时间并格式化。

1
2
3
4
5
6
7
8
<%
//预制时间格式
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//得到当前服务器时间
java.util.Date currentTime = new java.util.Date();
//将服务器时间按照预制格式进行格式化
String str_date = formatter.format(currentTime);
%>

将HTML(TXT)文件生成到指定目录,并标记生成时间。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%
String htmlString="<html><title><span class="wp_keywordlink_affiliate"><a href="http://www.w8o.net/tag/%e7%94%9f%e6%88%90html" title="View all posts in 生成HTML" target="_blank">生成HTML</a></span></title></html>";
String path=application.getRealPath(request.getRequestURI());
String directoryPath=new File(path).getParent();
String filePath=directoryPath+"/index.html";
filePath=filePath.toString();
File myFilePath=new File(filePath);
if(!myFilePath.exists())
myFilePath.createNewFile();
FileWriter resultFile=new FileWriter(myFilePath);
PrintWriter myFile=new PrintWriter(resultFile);
String strContent = htmlString.toString();
myFile.println(strContent);
resultFile.close();
out.print("ApacheSuccess!"+str_date);
%>

(application.getRealPath(request.getRequestURI())函数是用于获取当前文件所在的绝对目录;如果需要生成的TXT将文件index.html修改为index.txt即可;)

总结:代码本身可能没有太多的技术含量,不过像我这种本身不熟悉英文的人真心不怎么好找,没有去测试过这段代码的生成效率,因为对JSP不熟悉所以也没在JSP里做程序值守定时生成,我用VB做利用定时器和WebBrowser做个程序,放在了服务器上启动运行并定时执行。这里面还碰到一个问题,如果是用之前我写的JSP页面抓取的话,这样输出会导致生成的文件不换行,页面内的JS部分就很容易报错。这个可以抓去页面while组合页面的时候在尾部补充“\n”或“\r”来解决,只使用其中一个即可,否者在windows server上会变成两个换行效果。

PHP实现程序值守

众所周知,php属于脚本语言,他是通过客户端的访问从而执行服务端程序解析脚本返回结果给客户端的。

在实际应用中,其实很多编程的同仁都希望脚本语言ASP、PHP这类的能在我们访问了一个界面以后,一个进程就能永久的执行下去。这样,我们依托虚拟主机就能帮助我们实现一些工作,例如对一个指定页面进行数据检查,当数据变更时进行邮件通知。甚至如果有短信接口的话还可以进行短信通知。

首先设置PHP脚本超时时间,用来保证这个页面能够长时间的运行。

1
2
3
<?php  
set_time_limit(999999);
?>

(set_time_limit函数的参数为整型,为了程序长时间的执行下去,我们可以设置一个比较大的数值例如“999999”当然,也可以设置为“0”,设置为“0”时表示永远不超时)

然后设置当客户端断开访问时程序不停止执行。

1
2
3
<?php 
ignore_user_abort(TRUE);
?>

(ignore_user_abort函数的参数为布尔型,这里我们设置为“TRUE”即可)

最后我们使用一个循环去执行具体操作。

1
2
3
4
5
6
7
<?php
$x = 99999;
for ($i = 0; $i < $x; $i++) { 
    //这里写具体需要执行的操作代码
    sleep(60);
}
?>

(for循环没什么特别的,sleep函数是用作延时,以上代码表示每一次循环将延时60秒)

通过以上3个主要函数就完成了对于PHP程序的客户端离线后永久值守的效果。但是这时候我们会发现,除了结束PHP运行,我们竟然没有办法关闭这个程序的执行了。那么在实际应用中每一次执行具体操作的时候可以增加一次判断,在指定目录放一个txt文件然后通过PHP程序读取来判断是否需要结束。如果需要结束,那么执行”break;”语句即可。

介于以上语句制成的页面对服务器会有一定的长期消耗,一般也不需要重复执行,建议在最层做一个GET参数的IF判断。这样自己访问一次后这个任务就长期值守了。

奇葩的ASP输出方式

今天一整天在想,今天该写点什么,然后就翻看各种源文件。然后都没有发现什么特别的。

而后我很惊奇的在一个ASP程序里看到了echo,我当场棱掉了,莫非ASP还支持echo?写惯了Response.Write的我立马节操掉了一地,马上建了个文件做了下测试,结果发现不支持。然后仔细了检查了下他的代码,然后就发现了个奇葩的写法。

1
2
3
4
5
<%
Sub echo(str)
    Response.Write(str)
End Sub
%>

看到这几行代码,立马蛋都碎了,这哥们是先学的PHP吧?此代码来自ASP版的数据库在线管理程序。我个人十分不推荐使用这样的方式,这种做法实际是有些浪费性能的。

PHP判断手机浏览

在实际的网站制作当中,我们经常会碰手机用户的浏览,因为显示屏太小照成在用于PC端设计的网站整体页面错版、用户操作不便捷。在PHP架构的网站中,我们可以通过PHP的$_SERVER[‘HTTP_USER_AGENT’]函数获取浏览器参数来进行识别。

使用方法:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
$uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips";
$uachar .="|panasonic|alcatel|lenovo|cldc|midp|mobile)/i";
if(($ua == '' || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap'))
{
    //<span class="wp_keywordlink_affiliate"><a href="http://www.w8o.net/tag/%e6%89%8b%e6%9c%ba" title="View all posts in 手机" target="_blank">手机</a></span>浏览
    header("Location: http://www.enkeng.com/");
    exit;
}
echo 'PC浏览';
?>

中文标题慎用white-space:nowrap

white-space:nowrap的意思是除非碰到<br>否者强制不换行。在现实使用当中,一般使用white-space:nowrap都配合使用了width(元素宽度)、overflow:hidden(溢出隐藏),来避免因为强制不换行造成的文字撑破元素。今天无意在CSDN上转悠,突然发现了一处错误。

white-space-nowrap

上图的li a 主要代码为:

1
2
3
4
li a {
    width:130px;
    white-space:nowrap;
    overflow:hidden;}

看上图,很明显由于溢出隐藏造成文字被切掉一半,这样严重影响了整体的美观度。

下面是我常用的解决方法:

1
2
3
4
5
li {
    width:130px;
    height:20px;
    line-height:20px;
    overflow:hidden;}

利用元素高度以及行高,自动溢出隐藏,这样隐藏的结果就不会存在切掉半个字或是半个单词的情况。超出的部分会因为行高的设置自定跳到第二行,因为我已经设置元素高度为20像素,超出部分溢出隐藏,这样就完美了解决了文字的裁切问题。

当然有时,可能碰到文本并不是垂直居中对其的,这种情况,我建议将元素高度和行高设置为跟字号一样。然后利用margin-top来定位。

CSS多浏览器兼容与IE6下PNG图片透明方法

现在主流浏览器大部分还是比较统一的网页排版效果,出现问题的主要集中在IE6、IE7、IE9(HTML5)。

IE6及以下版本:

1
2
3
4
5
<!--[if lt IE 7]>
    <link rel="stylesheet" type="text/css" href="css/ie6style.css"  />
    <script type="text/javascript" src="js/DD_belatedPNG_0.0.8a-min.js" ></script>
    <script type="text/javascript">DD_belatedPNG.fix('body');</script>
<![endif]-->

(DD_belatedPNG_0.0.8a-min.js用于解决IE6及以下版本的PNG图片透明问题,在DD_belatedPNG.fix函数内添加存在PNG的元素中间使用“,”分隔,例:div#logo或img#logo 。)

IE7和IE8:

1
2
3
4
5
6
<!--[if IE 7]>
    <link rel="stylesheet" type="text/css" href="css/ie7style.css"  />
<![endif]-->
<!--[if IE 8]>
    <link rel="stylesheet" type="text/css" href="css/ie8style.css"  />
<![endif]-->

IE9及以上版本:

1
2
3
<!--[if lt IE 9]>
    <script src="js/html5.js"  type="text/javascript"></script>
<![endif]-->

(添加HTML5兼容性JS)

备注:css文件内书写不兼容部分的样式表即可,以上所需的PNG透明JS和HTML5兼容JS文件在搜索引擎内直接搜索文件名均可找到。

IE6下float:left造成双倍margin-left

众所周知padding-bottom在IE6下会产生双倍高度,其实margin-left存在类似的问题。

CSS:

1
2
3
4
5
6
li {
    width:129px;
    height:30px;
    <span class="wp_keywordlink_affiliate"><a href="http://www.w8o.net/tag/floatleft" title="View all posts in float:left" target="_blank">float:left</a></span>;
    margin:9px;
    }

HTML:

1
2
3
4
5
6
<ul>
    <li>li</li>
    <li>li</li>
    <li>li</li>
    <li>li</li>
</ul>

IE7、IE8、Google Chrome、Mozilla Firefox下的表现结果正常。

ie8

IE6左侧出现双倍宽度,宽度值为单行内的多个元素的margin-left总和。

ie6

 

解决方式:(此方法仅在元素不存在背景和描边时使用)

1
2
3
4
5
6
li {
    width:129px;
    height:30px;
    margin:9px 9px 9px 0;
    padding:0 0 0 9px;
    }

JSP抓取页面并利用正则表达式取得数据

声明文本类型(如html编码为GB2312则建议使用GBK)

1
2
<%@ page language="java" pageEncoding="GBK"%>
<%@ page contentType="text/html;charset= GBK"%>

导入正则表达式

1
<%@page import="java.util.<span class="wp_keywordlink_affiliate"><a href="http://www.w8o.net/tag/regex" title="View all posts in regex" target="_blank">regex</a></span>.*"%>

抓取页面HTML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<% 
String sCurrentLine; 
String sTotalString; 
sCurrentLine=""
sTotalString=""
java.io.InputStream l_urlStream; 
java.net.URL l_url = new java.net.URL("http://www.enkeng.com/"); 
java.net.HttpURLConnection l_connection = (java.net.HttpURLConnection) l_url.openConnection(); 
l_connection.connect(); 
l_urlStream = l_connection.getInputStream(); 
java.io.BufferedReader l_reader = new java.io.BufferedReader(new java.io.InputStreamReader(l_urlStream)); 
while ((sCurrentLine = l_reader.readLine()) != null
sTotalString+=sCurrentLine; 
//out.println(sTotalString); 
%>

利用正则表达式取得数据

1
2
3
4
5
6
7
8
9
10
11
12
<% 
String Content=sTotalString;
Pattern p = Pattern.compile( "<h1>(.*?)</h1>" );
Matcher m = p.matcher( Content );
int a=0;
label:
while ( m.find() ) {
//out.print( m.group( 0 ) + "<br />" );
out.print( m.group( 1 ) + "<br />" );
break label;
}
%>