本机无法访问VMware虚拟机中的CentOS的web站点

使用VMware虚拟机,安装了nginx服务,虚拟机主机可以访问web服务,主机可以ping通虚拟机IP,但是无法访问web服务,
具体情况如下
1。主机能ping通虚拟机
2。虚拟机也能ping通主机(虚拟机如果ping不通主机,可以看下是否主机防火墙已经关闭了)
3。虚拟机能访问自己的web
4。主机无法访问虚拟己的web

检查是不是服务器的80端口被防火墙堵了,可以通过命令:telnet server_ip 80 来测试。

解决方法如下:

whereis iptables查看路径

# whereis iptables
iptables: /usr/sbin/iptables /usr/share/man/man8/iptables.8.gz

然后运行
/usr/sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT

数据库mysql可以使用:

/usr/sbin/iptables -I INPUT -p tcp –dport 3360 -j ACCEPT

试下是不是可以连接了,具体防火墙相关命令如下:

重启防火墙:/etc/init.d/iptables restart
查看CentOS防火墙信息:/etc/init.d/iptables status
关闭CentOS防火墙服务:/etc/init.d/iptables stop
永久关闭防火墙:chkconfig –level 35 iptables off

PHP开发过程中常用的一些处理方法整理

PHP开发过程中常用的一些处理方法整理
返回经addslashes处理过的字符串或数组
返回经stripslashes处理过的字符串或数组
过滤ASCII码从0-28的控制字符
格式化文本域内容
将文本格式成适合js输出的字符串
转义 javascript 代码标记
获取当前页面完整URL地址
字符截取 支持UTF8/GBK
获取请求ip
程序执行时间
产生随机字符串
将字符串转换为数组
将数组转换为字符串
转换字节数为其他单位
安全过滤函数

 

/**
* 返回经addslashes处理过的字符串或数组
* @param $string 需要处理的字符串或数组
* @return mixed
*/
function new_addslashes($string){
if(!is_array($string)) return addslashes($string);
foreach($string as $key => $val) $string[$key] = new_addslashes($val);
return $string;
}

/**
* 返回经stripslashes处理过的字符串或数组
* @param $string 需要处理的字符串或数组
* @return mixed
*/
function new_stripslashes($string) {
if(!is_array($string)) return stripslashes($string);
foreach($string as $key => $val) $string[$key] = new_stripslashes($val);
return $string;
}

/**
* 返回经addslashe处理过的字符串或数组
* @param $obj 需要处理的字符串或数组
* @return mixed
*/
function new_html_special_chars($string) {
if(!is_array($string)) return htmlspecialchars($string);
foreach($string as $key => $val) $string[$key] = new_html_special_chars($val);
return $string;
}
/**
* 安全过滤函数
*
* @param $string
* @return string
*/
function safe_replace($string) {
$string = str_replace(‘%20’,”,$string);
$string = str_replace(‘%27’,”,$string);
$string = str_replace(‘%2527’,”,$string);
$string = str_replace(‘*’,”,$string);
$string = str_replace(‘”‘,’"’,$string);
$string = str_replace(“‘”,”,$string);
$string = str_replace(‘”‘,”,$string);
$string = str_replace(‘;’,”,$string);
$string = str_replace(‘<‘,’&lt;’,$string);
$string = str_replace(‘>’,’&gt;’,$string);
$string = str_replace(“{“,”,$string);
$string = str_replace(‘}’,”,$string);
$string = str_replace(‘\\’,”,$string);
return $string;
}

/**
* 过滤ASCII码从0-28的控制字符
* @return String
*/
function trim_unsafe_control_chars($str) {
$rule = ‘/[‘ . chr ( 1 ) . ‘-‘ . chr ( 8 ) . chr ( 11 ) . ‘-‘ . chr ( 12 ) . chr ( 14 ) . ‘-‘ . chr ( 31 ) . ‘]*/’;
return str_replace ( chr ( 0 ), ”, preg_replace ( $rule, ”, $str ) );
}

/**
* 格式化文本域内容
*
* @param $string 文本域内容
* @return string
*/
function trim_textarea($string) {
$string = nl2br ( str_replace ( ‘ ‘, ‘&nbsp;’, $string ) );
return $string;
}

/**
* 将文本格式成适合js输出的字符串
* @param string $string 需要处理的字符串
* @param intval $isjs 是否执行字符串格式化,默认为执行
* @return string 处理后的字符串
*/
function format_js($string, $isjs = 1) {
$string = addslashes(str_replace(array(“\r”, “\n”, “\t”), array(”, ”, ”), $string));
return $isjs ? ‘document.write(“‘.$string.'”);’ : $string;
}

/**
* 转义 javascript 代码标记
*
* @param $str
* @return mixed
*/
function trim_script($str) {
if(is_array($str)){
foreach ($str as $key => $val){
$str[$key] = trim_script($val);
}
}else{
$str = preg_replace ( ‘/\<([\/]?)script([^\>]*?)\>/si’, ‘&lt;\\1script\\2&gt;’, $str );
$str = preg_replace ( ‘/\<([\/]?)iframe([^\>]*?)\>/si’, ‘&lt;\\1iframe\\2&gt;’, $str );
$str = preg_replace ( ‘/\<([\/]?)frame([^\>]*?)\>/si’, ‘&lt;\\1frame\\2&gt;’, $str );
$str = preg_replace ( ‘/]]\>/si’, ‘]] >’, $str );
}
return $str;
}
/**
* 获取当前页面完整URL地址
*/
function get_url() {
$sys_protocal = isset($_SERVER[‘SERVER_PORT’]) && $_SERVER[‘SERVER_PORT’] == ‘443’ ? ‘https://’ : ‘http://’;
$php_self = $_SERVER[‘PHP_SELF’] ? safe_replace($_SERVER[‘PHP_SELF’]) : safe_replace($_SERVER[‘SCRIPT_NAME’]);
$path_info = isset($_SERVER[‘PATH_INFO’]) ? safe_replace($_SERVER[‘PATH_INFO’]) : ”;
$relate_url = isset($_SERVER[‘REQUEST_URI’]) ? safe_replace($_SERVER[‘REQUEST_URI’]) : $php_self.(isset($_SERVER[‘QUERY_STRING’]) ? ‘?’.safe_replace($_SERVER[‘QUERY_STRING’]) : $path_info);
return $sys_protocal.(isset($_SERVER[‘HTTP_HOST’]) ? $_SERVER[‘HTTP_HOST’] : ”).$relate_url;
}
/**
* 字符截取 支持UTF8/GBK
* @param $string
* @param $length
* @param $dot
*/
function str_cut($string, $length, $dot = ‘…’) {
$strlen = strlen($string);
if($strlen <= $length) return $string;
$string = str_replace(array(‘ ‘,’&nbsp;’, ‘&amp;’, ‘&quot;’, ‘&#039;’, ‘&ldquo;’, ‘&rdquo;’, ‘&mdash;’, ‘&lt;’, ‘&gt;’, ‘&middot;’, ‘&hellip;’), array(‘∵’,’ ‘, ‘&’, ‘”‘, “‘”, ‘“’, ‘”’, ‘—’, ‘<‘, ‘>’, ‘·’, ‘…’), $string);
$strcut = ”;
if(strtolower(CHARSET) == ‘utf-8’) {
$length = intval($length-strlen($dot)-$length/3);
$n = $tn = $noc = 0;
while($n < strlen($string)) {
$t = ord($string[$n]);
if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
$tn = 1; $n++; $noc++;
} elseif(194 <= $t && $t <= 223) {
$tn = 2; $n += 2; $noc += 2;
} elseif(224 <= $t && $t <= 239) {
$tn = 3; $n += 3; $noc += 2;
} elseif(240 <= $t && $t <= 247) {
$tn = 4; $n += 4; $noc += 2;
} elseif(248 <= $t && $t <= 251) {
$tn = 5; $n += 5; $noc += 2;
} elseif($t == 252 || $t == 253) {
$tn = 6; $n += 6; $noc += 2;
} else {
$n++;
}
if($noc >= $length) {
break;
}
}
if($noc > $length) {
$n -= $tn;
}
$strcut = substr($string, 0, $n);
$strcut = str_replace(array(‘∵’, ‘&’, ‘”‘, “‘”, ‘“’, ‘”’, ‘—’, ‘<‘, ‘>’, ‘·’, ‘…’), array(‘ ‘, ‘&amp;’, ‘&quot;’, ‘&#039;’, ‘&ldquo;’, ‘&rdquo;’, ‘&mdash;’, ‘&lt;’, ‘&gt;’, ‘&middot;’, ‘&hellip;’), $strcut);
} else {
$dotlen = strlen($dot);
$maxi = $length – $dotlen – 1;
$current_str = ”;
$search_arr = array(‘&’,’ ‘, ‘”‘, “‘”, ‘“’, ‘”’, ‘—’, ‘<‘, ‘>’, ‘·’, ‘…’,’∵’);
$replace_arr = array(‘&amp;’,’&nbsp;’, ‘&quot;’, ‘&#039;’, ‘&ldquo;’, ‘&rdquo;’, ‘&mdash;’, ‘&lt;’, ‘&gt;’, ‘&middot;’, ‘&hellip;’,’ ‘);
$search_flip = array_flip($search_arr);
for ($i = 0; $i < $maxi; $i++) {
$current_str = ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
if (in_array($current_str, $search_arr)) {
$key = $search_flip[$current_str];
$current_str = str_replace($search_arr[$key], $replace_arr[$key], $current_str);
}
$strcut .= $current_str;
}
}
return $strcut.$dot;
}

/**
* 获取请求ip
*
* @return ip地址
*/
function ip() {
if(getenv(‘HTTP_CLIENT_IP’) && strcasecmp(getenv(‘HTTP_CLIENT_IP’), ‘unknown’)) {
$ip = getenv(‘HTTP_CLIENT_IP’);
} elseif(getenv(‘HTTP_MYCLIENTIP’) && strcasecmp(getenv(‘HTTP_MYCLIENTIP’), ‘unknown’)) {
$ip = getenv(‘HTTP_MYCLIENTIP’);
} elseif(getenv(‘HTTP_X_FORWARDED_FOR’) && strcasecmp(getenv(‘HTTP_X_FORWARDED_FOR’), ‘unknown’)) {
$ip = getenv(‘HTTP_X_FORWARDED_FOR’);
} elseif(getenv(‘REMOTE_ADDR’) && strcasecmp(getenv(‘REMOTE_ADDR’), ‘unknown’)) {
$ip = getenv(‘REMOTE_ADDR’);
} elseif(isset($_SERVER[‘REMOTE_ADDR’]) && $_SERVER[‘REMOTE_ADDR’] && strcasecmp($_SERVER[‘REMOTE_ADDR’], ‘unknown’)) {
$ip = $_SERVER[‘REMOTE_ADDR’];
}
return preg_match ( ‘/[\d\.]{7,15}/’, $ip, $matches ) ? $matches [0] : ”;
}

function get_cost_time() {
$microtime = microtime ( TRUE );
return $microtime – SYS_START_TIME;
}
/**
* 程序执行时间
*
* @return    int    单位ms
*/
function execute_time() {
$stime = explode ( ‘ ‘, SYS_START_TIME );
$etime = explode ( ‘ ‘, microtime () );
return number_format ( ($etime [1] + $etime [0] – $stime [1] – $stime [0]), 6 );
}

/**
* 产生随机字符串
*
* @param    int        $length  输出长度
* @param    string     $chars   可选的 ,默认为 0123456789
* @return   string     字符串
*/
function random($length, $chars = ‘0123456789’) {
$hash = ”;
$max = strlen($chars) – 1;
for($i = 0; $i < $length; $i++) {
$hash .= $chars[mt_rand(0, $max)];
}
return $hash;
}

/**
* 将字符串转换为数组
*
* @param    string    $data    字符串
* @return    array    返回数组格式,如果,data为空,则返回空数组
*/
function string2array($data) {
if(empty($data)) return array();
if(is_array($data) || is_object($data)) return $data;
eval(“\$array = $data;”);
return $array;
}
/**
* 将数组转换为字符串
*
* @param    array    $data        数组
* @param    bool    $isformdata    如果为0,则不使用new_stripslashes处理,可选参数,默认为1
* @return    string    返回字符串,如果,data为空,则返回空
*/
function array2string($data, $isformdata = 1) {
if($data == ”) return ”;
if($isformdata) $data = new_stripslashes($data);
return addslashes(var_export($data, TRUE));
}

/**
* 转换字节数为其他单位
*
*
* @param    string    $filesize    字节大小
* @return    string    返回大小
*/
function sizecount($filesize) {
if ($filesize >= 1073741824) {
$filesize = round($filesize / 1073741824 * 100) / 100 .’ GB’;
} elseif ($filesize >= 1048576) {
$filesize = round($filesize / 1048576 * 100) / 100 .’ MB’;
} elseif($filesize >= 1024) {
$filesize = round($filesize / 1024 * 100) / 100 . ‘ KB’;
} else {
$filesize = $filesize.’ Bytes’;
}
return $filesize;
}