移动网站开发教程二,php变量及常量
一、PHP5.4的基本语法格式
1、PHP的分割符
代码如下 | 复制代码 |
print? $php=true; //分号结束语句 if($php){ echo "真"; //分号结束语句 } //大括号结束语句 ?> |
2、PHP注释与语法标识
(1)、单行注释 // 来源于C++的注释 # 来源于C语言的注释
(2)、多行注释 /* */ 来源于C语言的注释
3、函数的使用格式
(1) 返回值 函数名()
(2) 返回值 函数名(参数, 参数)
(3) 函数名(参数, 参数, 返回变量)
(4) 返回值 函数名(.. ..)通用符 // PHP5.4的用法
二、PHP5.4的变量与变量的数据类型
变量是由一个美元符“$"开头,”$"后是一个标识符。标识字符串只字母、数字、下划线组成且不可以数字开头。
代码如下 | 复制代码 |
$php=true; //分号结束语句 if($php){ echo "真"; //分号结束语句 } //大括号结束语句 $url="blog.csdn.net/dawanganban"; //定义变量 echo $url; unset($url); //删除一个变量url echo $url; ?> |
变量命名的方式
(1)单词之间直接连接
$titlekeyword
(2)单词之间用下划线连接
$title_keyword
(3)单词之间首字母大写(驼峰)
$titleKeyword
PHP的数据类型如下:
(1)字符串(String):单引号(简单引号)或双引号(功能引号)内的内容
(2)整型(integer): -2^32 < n < 2^32-1
(3)浮点符(float或double) 1.8E+308 (1.8 x 10^308)
(4)布尔型(boolean) true或false
(5)数组(Array)
(6)对象(Object)
代码如下 | 复制代码 |
class Person{ public $userName="阳光小强"; public function getMsg(){ echo "姓名为:".$this->userName; } } $p=new Person(); $p->getMsg(); ?> |
(7)资源类型(Resouce) 系统数据资源
资源是一个特殊的数据类型,无法直接获得变量,需要通过专门的函数来访问:
数据库访问必须通过Mysql函数库、Mysqli函数库或PDO函数库实现。
文件访问必须通过FileSystem函数库实现。
目录操作必须通过Directory函数库实现。
图像操作必须通过GD函数库实现。
(8)空值(NULL)
三、PHP5.4的系统常量与自定义常量
常量在程序执行期间无法改变数据,常量的作用域是全局的。常量的命名与变量相似,只是不带“$"符号。一个有效的常量由字母或者下划线开头,一般在PHP中常量都为大写字母而且又分为系统常量和自定义常量。
系统常量范例:
__FILE__ 默认常量,是指PHP程序文件名及路径
__LINE__ 默认常量,是指PHP程序的行数
__CLASS__ 类的名称
在PHP中通过define()函数来定义一个常量,其语法格式为:
bool define(string $name, mixed $value [, bool case_$insensitive])
name:常量的名称
value:常量的值
insensitive:指定常量名称是否区分大小写。如果设置为true则不区分大小写;如果设置为false则区分大小写,默认值为false。
print?
define("COLOR", "red"); //定义一个常量COLOR,值为red
echo COLOR."
"; //输出常量COLOR的值
可变变量
$a="b"
$$a="123" //可变变量
echo $b;
输出结果为:123
在字符串中输出变量要使用双引号
$a=50;
//echo '我有$a元人民币"; 单引号
echo "我有$a元人民币";
在双引号中可以执行的转意字符更多,比如 n t r
判断数据类型
$a="-5";
//$a=-5;
var_dump($a);
一、PHP的运算符
PHP中有丰富的运算符集,它们中大部分直接来自于C语言。按照不同功能区分,运算符可以分为:算术运算符、字符串运算符、赋值运算符、位运算符、条件运算符,以及逻辑运算符等。当各种运算符在同一个表达式中时,它们的运算是有一定的优先级的。
(1)算术运算
代码如下 | 复制代码 |
+ - * / % ++ -- |
(2)字符串运算符
字符串运算符只有一个.(点)就是英文的句号。它可以将字符串连接起来,组成新字符串,也可以将字符串与数字连接,这时类型会自动转换。
代码如下 | 复制代码 |
$a="dawanganban"; $b="123"; echo $a.$b; //输出结果:dawanganban123 |
(3)赋值运算符
代码如下 | 复制代码 |
= += -= *= /= %= .= $a="dawanganban"; $a.=1; $a.=2; $a.=3; echo $a.$b; //输出结果:dawanganban123 |
(4)位运算符
& | ~ ^ << >>
(5)比较运算符
> < >= <= == != <> === !==
<>:为不等于和!=相同
===:恒等,值相等且类型一致
!==:非恒等,值不相等或类型不一致
代码如下 | 复制代码 |
echo 5 == "5"; //true PHP是弱类型语言(js中的变量类似) echo 5 === "5"; //false 完全等于 |
(6)逻辑运算
AND(逻辑与) OR(逻辑或) XOR(逻辑异或) &&(逻辑与) ||(逻辑或) !(逻辑非)
代码如下 | 复制代码 |
var_dump(5 && ""); //false var_dump(5 && "2"); //true var_dump(5 || ""); //true var_dump(0 xor 1); //true var_dump(0 xor 0); //false var_dump(1 xor 1); //false |
一、PHP5.4环境搭配基本流程
Apache:Web服务提供者。官网:www.apache.org
PHP: 官网:www.php.net
Mysql: 官网:www.mysql.com
二、软件下载
Apache下载地址:http://download.csdn.net/detail/lxq_xsyu/7057423
PHP下载地址:http://download.csdn.net/detail/lxq_xsyu/7057401
Mysql下载地址:http://download.csdn.net/detail/lxq_xsyu/6468461
三、环境搭建
(1)Apache安装
安装成功
(2)解压PHP5.4
(3)配置Apache的httpd.conf文件
Apache安装目录
ServerRoot "D:/Apache Software Foundation"
监听端口
#Listen 12.34.56.78:80
Listen 80
载入PHP组件
LoadModule php5_module "D:/php54/php5apache2_2.dll"
服务器名称
#ServerName www.meritit.com:80
文件根目录
DocumentRoot "D:/Apache Software Foundation/htdocs"
权限文件夹
索引(默认访问主页)
DirectoryIndex index.html
错误日志
ErrorLog "logs/error.log"
访问日志
CustomLog "logs/access.log" common
配置解析php
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
错误类型
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.meritit.com/subscription_
四、测试是否搭建成功
新建a.php
<?php
phpinfo();
?>
可以看到找不到php的配置文件,我们在apache配置文件中指定一下php的配置文件目录
PHPIniDir "D:/php54"
五、配置多站点访问
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
去掉上面注释(打开虚拟主机配置文件)
在httpd-vhosts.conf中配置了两个站点如下
DocumentRoot "D:/Apache Software Foundation/a_com"
ServerName 127.0.0.2
ServerAlias www.dummy-host.meritit.com
ErrorLog "logs/dummy-host.meritit.com-error.log"
CustomLog "logs/dummy-host.meritit.com-access.log" common
DocumentRoot "D:/Apache Software Foundation/b_com"
ServerName 127.0.0.3
ErrorLog "logs/dummy-host2.meritit.com-error.log"
CustomLog "logs/dummy-host2.meritit.com-access.log" common
注意:一旦配置了虚拟主机,前面配置的DocumentRoot就无效了。
D:Apache Software Foundationa_coma.php
<?php
echo "aaaaaa";
?>
D:Apache Software Foundationb_comb.php
<?php
echo "bbbbbb";
?>
注意:要修改权限文件夹目录
访问结果:
下文整理了一些在php 应用开发中常用到的一些函数了,这些函数有字符操作,文件操作及其它的一些操作了,下面给各位整理一下。
1、PHP加密解密
PHP加密和解密函数可以用来加密一些有用的字符串存放在数据库里,并且通过可逆解密字符串,该函数使用了base64和MD5加密和解密。
代码如下 | 复制代码 |
function encryptDecrypt($key, $string, $decrypt){ if($decrypt){ $decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "12"); return $decrypted; }else{ $encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key)))); return $encrypted; } } |
使用方法如下:
//以下是将字符串“Helloweba欢迎您”分别加密和解密
//加密:
echo encryptDecrypt('password', 'Helloweba欢迎您',0);
//解密:
echo encryptDecrypt('password', 'z0JAx4qMwcF+db5TNbp/xwdUM84snRsXvvpXuaCa4Bk=',1);
2、PHP生成随机字符串
当我们需要生成一个随机名字,临时密码等字符串时可以用到下面的函数:
代码如下 | 复制代码 |
function generateRandomString($length = 10) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, strlen($characters) - 1)]; } return $randomString; } 使用方法如下: echo generateRandomString(20); |
3、PHP获取文件扩展名(后缀)
以下函数可以快速获取文件的扩展名即后缀。
代码如下 | 复制代码 |
function getExtension($filename){ $myext = substr($filename, strrpos($filename, '.')); return str_replace('.','',$myext); } 使用方法如下: $filename = '我的文档.doc'; echo getExtension($filename); |
4、PHP获取文件大小并格式化
以下使用的函数可以获取文件的大小,并且转换成便于阅读的KB,MB等格式。
代码如下 | 复制代码 |
function formatSize($size) { $sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"); if ($size == 0) { return('n/a'); } else { return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]); } } 使用方法如下: $thefile = filesize('test_file.mp3'); echo formatSize($thefile); |
5、PHP替换标签字符
有时我们需要将字符串、模板标签替换成指定的内容,可以用到下面的函数:
代码如下 | 复制代码 |
function stringParser($string,$replacer){ $result = str_replace(array_keys($replacer), array_values($replacer),$string); return $result; } 使用方法如下: $string = 'The {b}anchor text{/b} is the {b}actual word{/b} or words used {br}to describe the link {br}itself'; $replace_array = array('{b}' => '<b>','{/b}' => '</b>','{br}' => '<br />'); echo stringParser($string,$replace_array); |
6、PHP列出目录下的文件名
如果你想列出目录下的所有文件,使用以下代码即可:
代码如下 | 复制代码 |
function listDirFiles($DirPath){ if($dir = opendir($DirPath)){ while(($file = readdir($dir))!== false){ if(!is_dir($DirPath.$file)) { echo "filename: $file<br />"; } } } } 使用方法如下: listDirFiles('home/some_folder/'); |
7、PHP获取当前页面URL
以下函数可以获取当前页面的URL,不管是http还是https。
代码如下 | 复制代码 |
function curPageURL() { $pageURL = 'http'; if (!empty($_SERVER['HTTPS'])) {$pageURL .= "s";} $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } else { $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; } return $pageURL; } 使用方法如下: echo curPageURL(); |
8、PHP强制下载文件
有时我们不想让浏览器直接打开文件,如PDF文件,而是要直接下载文件,那么以下函数可以强制下载文件,函数中使用了application/octet-stream头类型。
代码如下 | 复制代码 |
function download($filename){ if ((isset($filename))&&(file_exists($filename))){ header("Content-length: ".filesize($filename)); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . $filename . '"'); readfile("$filename"); } else { echo "Looks like file does not exist!"; } } 使用方法如下: download('/down/test_45f73e852.zip'); |
9、PHP截取字符串长度
我们经常会遇到需要截取字符串(含中文汉字)长度的情况,比如标题显示不能超过多少字符,超出的长度用...表示,以下函数可以满足你的需求。
代码如下 | 复制代码 |
/* Utf-8、gb2312都支持的汉字截取函数 cut_str(字符串, 截取长度, 开始长度, 编码); 编码默认为 utf-8 开始长度默认为 0 */ function cutStr($string, $sublen, $start = 0, $code = 'UTF-8'){ if($code == 'UTF-8'){ $pa = "/[x01-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][x80-xbf]|xf0[x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/"; preg_match_all($pa, $string, $t_string); if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."..."; return join('', array_slice($t_string[0], $start, $sublen)); }else{ $start = $start*2; $sublen = $sublen*2; $strlen = strlen($string); $tmpstr = ''; for($i=0; $i<$strlen; $i++){ if($i>=$start && $i<($start+$sublen)){ if(ord(substr($string, $i, 1))>129){ $tmpstr.= substr($string, $i, 2); }else{ $tmpstr.= substr($string, $i, 1); } } if(ord(substr($string, $i, 1))>129) $i++; } if(strlen($tmpstr)<$strlen ) $tmpstr.= "..."; return $tmpstr; } } 使用方法如下: $str = "jQuery插件实现的加载图片和页面效果"; echo cutStr($str,16); |
10、PHP获取客户端真实IP
我们经常要用数据库记录用户的IP,以下代码可以获取客户端真实的IP:
代码如下 | 复制代码 |
//获取用户真实IP function getIp() { if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) $ip = getenv("REMOTE_ADDR"); else if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) $ip = $_SERVER['REMOTE_ADDR']; else $ip = "unknown"; return ($ip); } 使用方法如下: echo getIp(); |
11、PHP防止SQL注入
我们在查询数据库时,出于安全考虑,需要过滤一些非法字符防止SQL恶意注入,请看一下函数:
代码如下 | 复制代码 |
function injCheck($sql_str) { $check = preg_match('/select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile/', $sql_str); if ($check) { echo '非法字符!!'; exit; } else { return $sql_str; } } |
使用方法如下:
echo injCheck('1 or 1=1');
12、PHP页面提示与跳转
我们在进行表单操作时,有时为了友好需要提示用户操作结果,并跳转到相关页面,请看以下函数:
代码如下 | 复制代码 |
function message($msgTitle,$message,$jumpUrl){ $str = '<!DOCTYPE HTML>'; $str .= '<html>'; $str .= '<head>'; $str .= '<meta charset="utf-8">'; $str .= '<title>页面提示</title>'; $str .= '<style type="text/css">'; $str .= '*{margin:0; padding:0}a{color:#369; text-decoration:none;}a:hover{text-decoration:underline}body{height:100%; font:12px/18px Tahoma, Arial, sans-serif; color:#424242; background:#fff}.message{width:450px; height:120px; margin:16% auto; border:1px solid #99b1c4; background:#ecf7fb}.message h3{height:28px; line-height:28px; background:#2c91c6; text-align:center; color:#fff; font-size:14px}.msg_txt{padding:10px; margin-top:8px}.msg_txt h4{line-height:26px; font-size:14px}.msg_txt h4.red{color:#f30}.msg_txt p{line-height:22px}'; $str .= '</style>'; $str .= '</head>'; $str .= '<body>'; $str .= '<div class="message">'; $str .= '<h3>'.$msgTitle.'</h3>'; $str .= '<div class="msg_txt">'; $str .= '<h4 class="red">'.$message.'</h4>'; $str .= '<p>系统将在 <span style="color:blue;font-weight:bold">3</span> 秒后自动跳转,如果不想等待,直接点击 <a href="{$jumpUrl}">这里</a> 跳转</p>'; $str .= "<script>setTimeout('location.replace('".$jumpUrl."')',2000)</script>"; $str .= '</div>'; $str .= '</div>'; $str .= '</body>'; $str .= '</html>'; echo $str; } 使用方法如下: message('操作提示','操作成功!','http://www.111cn.net/'); |
13、PHP计算时长
我们在处理时间时,需要计算当前时间距离某个时间点的时长,如计算客户端运行时长,通常用hh:mm:ss表示。
代码如下 | 复制代码 |
function changeTimeType($seconds) { if ($seconds > 3600) { $hours = intval($seconds / 3600); $minutes = $seconds % 3600; $time = $hours . ":" . gmstrftime('%M:%S', $minutes); } else { $time = gmstrftime('%H:%M:%S', $seconds); } return $time; } 使用方法如下: $seconds = 3712; echo changeTimeType($seconds); |
但有时候会发现在php中没有达到想要实现的目的。
具体原因我就不讨论了,php实际应用中一般都是用isset()函数来做判断的。
示例如下:
代码如下 | 复制代码 |
if( isset($_GET[’name’]) )//判断传来的值是否为空。 |
例子
代码如下 | 复制代码 |
<?php foreach ($arr_var as $value) { 传入值为: 传入值为:0 传入值为:0 传入值为: 传入值为: 传入值为:Array |
总结一:从结果中可以看出,""、0、"0"、NULL、FALSE、array()这几个中,empty()和“变量本身作为参数”结果一致,均作为“空”来处理,而isset()和is_null ()仅当是null时,才作为“空”来处理(值得注意的是false并不会被认为是空)
isset和is_null对比
is_null是函数, 所以它可以通过如下方式调用:
代码如下 | 复制代码 |
<?php $var = NULL; $func = "is_null"; $func($var); ?> |
而, isset因为是语句, 所以不能这样调用.
因为is_null是函数, 所以它可以接受函数返回值做为参数, 而isset不行(当然, 如果PHP想支持, 其实也是可以的, 只不过就要增加编译阶段的复杂度了):
代码如下 | 复制代码 |
<?php is_null(intval("0x45")); //OK isset(intval("0x45")); //PHP Fatal error: Can't use function return value in write context is_null(NULL); //OK isset(NULL); //PHP Parse error: syntax error ?> |
说了这么多isset的缺点了, 说点它的优点吧:
因为isset是语句, 所以它快!
在一千万次的简单检测语句循环中, 对比结果如下:
代码如下 | 复制代码 |
<?php $a="laruence": isset($a); //用时: 1.15s is_null($a); //用时: 3.89s ?> |
因为isset叫做isset, 所以它在检测未定义变量的时候, 不会产生NOTICE:
代码如下 | 复制代码 |
<?php isset($laruence); //OK is_null($laruence); //PHP Notice: Undefined variable: laruence ?> |
那么, 对于什么时候用isset什么时候用is_null, 我有什么建议呢?
诶, 我的建议是, 用函数做函数应该做的事情~, 听起来象废话?
isset => is set? => 变量有没有被赋值(声明)
is_null => is null? => 变量为NULL么?
另外, 如果要用is_null, 我建议使用 “=== NULL” 来代替, 它不仅语义和is_null一致, 结果一致, 速度还和isset差不多:
在一千万次的简单检测语句循环中, 对比结果如下:
代码如下 | 复制代码 |
<?php |
使用说明:
1、空值、0、false的赋值结果均被isset判为 TRUE
2、NULL将被isset判为 FALSE
3、isset()同样适用于数组元素和对象元素的检查。若数组或对象实例未被定义,则检测其中的数组元素/对象元素将被返回false。
附:
PHP的isset()函数
格式:bool isset ( mixed var [, mixed var [, ...]] )
功能:检测变量是否设置
返回值:
若变量不存在则返回 FALSE
若变量存在且其值为NULL,也返回 FALSE
若变量存在且值不为NULL,则返回 TURE
同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE
版本:PHP 3, PHP 4, PHP 5
更多说明:
使用 unset() 释放变量之后,它将不再是 isset()。
isset() 只能用于变量,传递任何其它参数都将造成解析错误。
检测常量是否已设置可使用 defined() 函数。
相关文章
- 今天我来给大家介绍在php中跨网站请求伪造的实现方法与最后我们些常用的防止伪造的具体操作方法,有需要了解的朋友可进入参考。 伪造跨站请求介绍 伪造跨站请求...2016-11-25
- 支付宝支付在国内算是大家了,我们到处都可以使用支付宝了,下文整理介绍的是在安卓app应用中使用支付宝进行支付的开发例子。 之前讲了一篇博客关与支付宝集成获取...2016-09-20
- 下面本文章来给大家介绍在php中成员变量的一些对比了,文章举了四个例子在这例子中分别对不同成员变量进行测试与获取操作,下面一起来看看。 有如下4个代码示例,你认...2016-11-25
- 本文主要介绍了C#变量命名规则小结,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-09
- 这篇文章主要介绍了R语言删除指定变量或对象的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
- 获取网站icon,常用最简单的方法就是通过website/favicon.ico来获取,不过由于很多网站都是在页面里面设置favicon,所以此方法很多情况都不可用。 更好的办法是通过google提供的服务来实现:http://www.google.com/s2/favi...2014-06-07
解决vue的router组件component在import时不能使用变量问题
这篇文章主要介绍了解决vue的router组件component在import时不能使用变量问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27- 这篇文章主要介绍了Vue select 绑定动态变量的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-23
- 在PHP中,大部分变量类型,如字符串,整型,浮点,数组等都是值类型的,而类和对象是引用类型,在使用的时候,需要注意这一点。看到网友在讨论PHP的&符号,要彻底理解它的用法,就有必要讨论一下变量的两种形式。PHP的变量在内存中是这样...2015-10-23
mac下Apache + MySql + PHP搭建网站开发环境
首先为什不自己分别搭建Apache,PHP和MySql的环境呢?这样自己可以了解更多知识,说起来也更酷。可也许因为我懒吧,我是那种“既然有现成的,用就是了”的人。君子生非异也,善假于物也。两千年前的荀子就教导我们,要善于利用工具...2014-06-07- PHP是一种解释型的语言,对于用户而言,我们精心的控制内存意味着easier prototyping和更少的崩溃!当我们深入到内核之后,所有的安全防线都已经被越过,最终还是要依赖于真正有责任心的软件工程师来保证系统的稳定运行。1、线...2015-11-08
- 下面小编就为大家带来一篇java中String类型变量的赋值问题介绍。小编觉得挺不错的。现在分享给大家,给大家一个参考。...2016-03-28
- 这篇文章主要介绍了详解ES6实现类的私有变量的几种写法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-10
- 虽然C#编译器为每个类型都设置了默认类型,但作为面向对象的设计原则,我们还是需要对变量进行正确的初始化。实际上这也是C#推荐的做法...2020-06-25
- 我要实现的就是下图的这种样式,可参考下面这两个网站的留言板,他们的实现原理都是一样的畅言留言板样式:网易跟帖样式:原理 需要在评论表添加两个主要字段 id 和 pid ,其他字段随意添加,比如文章id、回复时间、回复内容、...2015-11-08
网站广告怎么投放最好?首屏广告投放类型优化和广告位布局优化的案例
网站广告怎么投放最好?一个网站中广告位置最好的是哪几个地方呢,许多的朋友都不知道如何让自己的网站广告收效最好了,今天我们就一起来看看吧。 在说到联盟优化前,...2016-10-10- 这篇文章主要介绍了python 实现循环定义、赋值多个变量的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- 这篇文章主要给大家介绍了关于如何在JS中如何使用css变量以及export之javascript关键字的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2021-09-02
- 这篇文章主要介绍了node.js 全局变量的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-15
- 这篇文章主要给大家介绍了关于Nest.js环境变量配置与序列化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-21