php 字符串是否是 科学记数法
在 PHP 中,可以使用正则表达式来检查一个字符串是否表示科学记数法。以下是一个示例:
function isScientificNotation($string)
{
return preg_match('/^[-+]?[0-9]+(\.[0-9]+)?[eE][-+]?[0-9]+$/', $string);
}
$string1 = '1.23e+6'; // 科学记数法表示的字符串
$string2 = '1230000'; // 非科学记数法表示的字符串
if (isScientificNotation($string1)) {
echo "$string1 是科学记数法";
} else {
echo "$string1 不是科学记数法";
}
echo "\n";
if (isScientificNotation($string2)) {
echo "$string2 是科学记数法";
} else {
echo "$string2 不是科学记数法";
}
在上述示例中,我们定义了一个名为 isScientificNotation() 的函数,该函数使用 preg_match() 函数和正则表达式来检查一个字符串是否符合科学记数法的格式。如果字符串表示科学记数法,则函数返回 true,否则返回 false。
通过调用 isScientificNotation() 函数并传入需要检查的字符串,您可以确定该字符串是否是科学记数法表示。
注意,上述示例中的正则表达式仅适用于常见的科学记数法表示形式,如 1.23e+6。如果您需要处理更多变体或其他格式,可能需要修改正则表达式以适应您的需求。
Centos 查看用户组
要查看CentOS中的用户组,可以使用以下命令:
cat /etc/group
该命令将显示系统中所有用户组的列表,包括每个用户组的名称、组ID(GID)以及所属的用户列表。您可以在终端中运行此命令并查看输出以获取所需的用户组信息。
常见的容器技术有哪些
常见的容器技术主要有以下几种:
Docker:Docker是目前最为流行的容器技术之一。它使用了轻量级的虚拟化技术,可以将应用程序及其依赖项打包成一个独立的可移植的容器,使得应用程序的部署、运行和管理变得更加简单和高效。Kubernetes:Kubernetes是一种用于容器编排和管理的开源平台,可以帮助用户自动化部署、扩展和管理容器化应用程序。它提供了一套完整的容器编排和管理工具,可以轻松地管理大规模的容器化应用程序。Apache Mesos:Apache Mesos是一个开源的集群管理系统,可以提供高效的资源管理和任务调度。它支持多种应用程序框架,包括Docker、Hadoop和Spark等,可以帮助用户轻松地管理和调度容器化应用程序。LXC/LXD:LXC(Linux Containers)是一种轻量级的虚拟化技术,它可以在一个Linux系统上运行多个独立的容器。LXD是LXC的管理工具,可以帮助用户轻松地管理和部署LXC容器。
除了以上几种常见的容器技术,还有一些其他的容器技术,比如rkt、OpenVZ、Linux-VServer等,但它们的使用率相对较低。在实际应用中,需要根据具体的场景和需求选择适合自己的容器技术。
PHP 获取客户端ip地址
PHP 获取客户端ip地址
一、如果没有使用代理服务器,
REMOTE_ADDR = 客户端IP
HTTP_X_FORWARDED_FOR = 没数值或不显示
$ip = $_SERVER['REMOTE_ADDR'];
二、使用透明代理,
REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_X_FORWARDED_FOR = 客户端真实 IP (经过多个代理服务器时,这个值类似:221.5.252.160, 203.98.182.163, 203.129.72.215)
这类代理还会将客户真实ip发送到请求对象,无法隐藏真实ip。
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
三、使用普通匿名代理服务器,
REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_X_FORWARDED_FOR = 代理服务器 IP (经过多个代理服务器时,这个值类似:203.98.182.163, 203.98.182.163, 203.129.72.215)
这样就隐藏了客户端的真实ip,但服务器会知道客户端是通过代理服务器去访问的。
四、使用欺骗性代理服务器,
REMOTE_ADDR = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 随机的 IP(经过多个代理服务器时,这个值类似:220.4.251.159, 203.98.182.163, 203.129.72.215)
服务器可以识别到时通过代理服务器访问的,但发送给目标服务器的是虚假ip。
五、使用高匿名代理,
REMOTE_ADDR = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 没数值或不显示
使用这种代理时,不同浏览器不同设备会返回不同的ip头信息,因此PHP使用 $_SERVER["REMOTE_ADDR"] 、$_SERVER["HTTP_X_FORWARDED_FOR"] 获取的值可能是空值也可能是“unknown”值。
PHP获取ip代码如下:
public function ip() {
//strcasecmp 比较两个字符,不区分大小写。返回0,>0,<0。
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$ip = getenv('HTTP_CLIENT_IP');
} 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'];
}
$res = preg_match ( '/[\d\.]{7,15}/', $ip, $matches ) ? $matches [0] : '';
echo $res;
//dump(phpinfo());//所有PHP配置信息
}