php 程序设计代码教程

  php 程序设计代码
                     
讲到 PHP 的全名就蛮有趣的,它是一个巢状的缩写名称, "PHP: Hypertext Preprocessor" ,打开缩写还是缩写。 PHP 是一种 HTML 内嵌式的语言 ( 类似 IIS 上的 ASP) 。而 PHP 独特的语法混合了 C Java Perl 以及 PHP 式的新语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。 PHP 最初是在西元 1994 Rasmus Lerdorf 开始计画发展。在 1995 年以 Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。随后在新的成员加入开发行列之后,在 1995 年中,第二版的 PHP 问市。第二版定名为 PHP/FI(Form Interpreter) PHP/FI 并加入了 mSQL 的支援,自此奠定了 PHP 在动态网页开发上的影响力。在 1996 年底,有一万五千个 Web 站台使用 PHP/FI ;在 1997 年中,使用 PHP/FI Web 站台成长到超过五万个。而在 1997 年中,开始了第三版的开发计划,开发小组加入了 Zeev Suraski Andi Gutmans ,而第三版就定名为 PHP3 PHP3 Apache 伺服器紧密结合的特性;加上它不断的更新及加入新的功能;并且它几乎支援所有主流与非主流资料库;再以它能高速的执行效率,使得 PHP 1999 年中的使用站台超过了十五万 !! 它的原始码完全公开,在 Open Source 意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函式库加入,以及不停地更新的活力,使得 PHP 无论在 UNIX 或是 Win32 的平台上都可以有更多新的功能。它提供丰富的函式,使得在程式设计方面有着更好的支援。 PHP 的第四代 Zend 核心引擎已经进入测试阶段。整个剧本程式的核心大幅更动,让程式的执行速度,满足更快的要求。在最佳化之后的效率,已较传统 CGI 或者 ASP 等程式有更好的表现。而且还有更强的新功能、更丰富的函式馆。无论您接不接受, PHP 都将在 Web CGI 的领域上,掀起巅覆性的革命。对于一位专业的 Web Master 而言,它将也是必修课程之一。 PHP 在资料库方面的丰富支援,也是它迅速窜红的原因之一,它支援下列的资料库或是资料表:
  • Adabas D
  • DBA
  • dBase
·         dbm
  • filePro
  • Informix InterBase
  • mSQL
  • Microsoft SQL Server
  • MySQL
  • Solid
  • Sybase
  • ODBC
  • Oracle 8
  • Oracle
  • PostgreSQL
而在 Internet 上它也支援了相当多的通讯协定 (protocol),包括了与电子邮件相关的 IMAP, POP3;网管系统 SNMP;网路新闻 NNTP;帐号共用 NIS;全球资讯网 HTTP 及 Apache 伺服器;目录协定 LDAP 以及其它网路的相关函式。除此之外,用 PHP 写出来的 Web 后端 CGI 程式,可很轻易的移植到不同的作业平台上。例如,先以 Linux 架的网站,在系统负荷过高时,可以快速地将整个系统移到 SUN 工作站上,不用重新编译 CGI 程式。面对快速发展的
程式介面
PHP
ASP
CGI
ISAPI
作业系统
均可
Win32
均可
均可
Win32
Web 伺服器
数种
IIS
均可
Netscape Server
IIS
执行效率
极快
极快
稳定性
中等
最高
开发时间
中等
修改时间
中等
程式语言
PHP
VB
不限
C/C++
C/Delphi
网页结合
学习门槛
极高
函式支援
不定
中等
系统安全
极差
最佳
尚可
使用站台
超多
极少
改版速度
其中的 PHP 可用在数种 Web 伺服器上;传统 CGI 就不限是哪种作业系统或 Web 伺服器平台;NSAPI 一定要在 Netscape 的伺服器 (如 Netscape Enterprise Server 或 FastTrack Server) 上才可以执行,但可支援多种作业系统 (UNIX 或 Win32);ASP 及 ISAPI 只在 IIS 上有完整的功能。在稳定性上,由于 NSAPI 或 ISAPI 是动态连结的方式,因此在执行若出现问题,会使得 Web 伺服器一起瘫痪。而 ASP 在吾人实际应用经验上,隔阵子就会使系统不稳定,需要重开作业系统。PHP 在许多的站台使用上,不但长期使用都没有问题,而且程式的稳定性也不错。当然最稳的还是传统 CGI 程式,因为它是由作业系统负责控制,不会因 CGI 程式的错误导致 Web 伺服器的不稳定。在开发及维护时间上,PHP 及 ASP 都有不错的表现。而 NSAPI 及 ISAPI 则需要长时间的开发过程,在稳定上线后,这二种介面反倒是效率最佳的方法。传统的 CGI 程式则要视开发工具语言而定了,用 Perl 或是 shell script 不需要编译的过程,直接就可以执行,若用 Delphi 或 VC/BCB 甚至用组合语言等都要经过编译才能执行,至于用 VB 来写传统 CGI,唉....。要比较和网页结合的能力,PH和 ASP 是并驾齐驱的,其它的方式就不能内嵌 HTML 语法了。而这也是影响开发时间的因素之一。就系统安全性而言,ASP 是最差的,在没有经过微软的 IIS Service Pack 处理过,使用 ::$DATA 就可以看到 ASP 的原始码,这真是叫人不敢领教。当然,传统 CGI 的程式,由于是由作业系统直接管理,要破解的难度最高,骇客必须由作业系统下手,而不能由 Web 伺服器下手。PHP 在许多商业及非商业使用时,也没有听过有什么安全的问题。在新增功能及改版方面,传统的 CGI 由于不受任何语言限制,没有这方面的问题。PHP 是最有活力的,数天至数周就有一个新版本出现,每次的新版,就代表更多的功能及修正更多的错误。其它的 ASP、NSAPI、ISAPI 就视它的 Web 伺服器改版速度了,ASP 要等到 IIS 5.0 出现时才会有 ASP 3.0,也就是要等到 Windows 2000 正式上市。综言之,在 Web 的后端 CGI 程式,就像鱼与熊掌一般,没有高效能又开发方便的选择。不过相信 PHP 是处于开发容易、效能亦不错的平衡点上。
PHP 与其它 CGI 的比较/
Internet,这是长期规划的最好选择。
在加入其它的模组之后,提供了更多样的支援如下:
  • 英文拼字检查
  • BC 高精确度计算
  • 西洋历法
  • PDF 档案格式
  • Hyperwave 伺服器
  • 图形处理
  • 编码与解码功能
  • 杂凑处理
  • WDDX 功能
  • qmail vmailmgr 系统
  • 压缩档案处理
  • XML 解析
除此之外,一般语言有的数学运算、时间处理、档案系统、字串处理、行程处理等功能,它一样都不缺。再加上它是免费的系统,使得成本与效益比,几乎等于无限大!
环境需求与准备工作

在安装 PHP 做为 WWW 伺服器的一部份时,我们可以考虑用 UNIX 作业系统;或者是 Windows NT/95 Win32 API 的平台。当然,大部份的人都会使用 UNIX 来当作 PHP 的执行平台 ( Windows NT 的使用者大多数都会选择 IIS + ASP) ,因此,本书的所有内容以及范例程式都是在 UNIX 上为主。实际上, Linux + Apache + PHP 应是最经济的选择,因为这样的组合几乎是不用钱的,成本与效益比这也是最好的选择。而许多成功站台的经验,更是采用这种组合最好的背书。
Linux 作业系统方面,您可以选择各式的 Linux 套件,包括 Slackware LinuxRedHatOpenLinuxSuSE....等等,反正这方面的软体在坊间也是很容易而且很便宜就可以买到。对学生而言,也可以去各大 FTP 站下载完整的系统安装。
Apache 伺服器则是目前最多 WWW 网站所采用伺服器。您可以至 http://www.apache.org 下载最新版的程式及相关文件,若您觉得从国外下载要很久的话,也可以用它的 Mirror 站台下载。/PHP 则可以去它的官方网站 http://www.php.net 下载所需要的程式。
虽然目前 WindowsNT 或者 Windows98 等 Win32 的作业平台也能安装 PHP 及 Apache 伺服器,不过这似乎没什么道理,因为 PHP 和 Apache 在 UNIX下可以跑得更快更好。当然,若想使用商业化的作业平台,SUN、IBM、HP、DEC、SGI、NEC 等公司都有提供相关的 UNIX 或者是 WindowsNT 的作业平台。加上高安全性调整过后的 Apache 伺服器:Stronghold 或是其它支援 SSL 的 Apache 版本。这种组合,相信能满足商业化的需求。而 PHP 就扮演着快速方便的 CGI 角色,让客户对站台的服务品质更加满意。快速设定及安装
以下是基本的安装动作,作业环境是 UNIX 系列的作业平台。在安装之前,要先下载 apache_1.3.x.tar.gz php-3.0.x.tar.gz 二个档案。可以将这二个档案放在 /usr/src 中再开始执行以下的动作。而下面每个行号后的动作都是整串字连在一起的,在这可能会分行而造成误会。
1.        gzip -d -c apache_1.3.x.tar.gz | tar xvf -
2.        gzip -d -c php-3.0.x.tar.gz | tar xvf -
3.        cd apache_1.3.x
4.        ./configure --prefix=/www
5.        cd ../php-3.0.x
6.        ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
7.        make
8.      make install
9.        cd ../apache_1.3.x
10.     ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a
11.     make
12.     make install
第一、二行利用 gzip 及 tar 加上管道功能,将压缩档解压还原。然后在 Apache 的原始档目录中执行环境设定,--prefix 选项指示 Apache 的安装目录路径。之后进入 PHP3 的原始档目录中,若没有 MySQL 资料库,则可省略 --with-mysql 的选项,重要的是一定要加入 --with-apache 选项,而且 Apache 原始档的路径要正确。设定完 PHP3 之后就编译、安装到 Apache 的原始档目录中。之后在 Apache 原始档目录中再加入 PHP 的模组档。在编译及安装 Apache 之后就初步完成了。之后就是要设定 Apache 才能让 Web Server 顺利运作。
值得注意的是,PHP 要和任何资料库连线,都要在执行这些动作之前先将资料库设好,并确定 Web Server 上可以顺利存取资料库系统。若有需要其它的一些 PHP 外部模组也要先设定好这些模组。
13.     cd ../php-3.0.x
14.     cp php3.ini-dist /usr/local/lib/php3.ini
之后将 php3.ini 放在指定的目录,若有需要,也可以手动修改 php3.ini 档档,以符合使用的要求。
在 Apache 伺服器的设定方面,要在 Apache 的设定档 httpd.conf 或 srm.conf 档案中加入下面的字串。告诉 Apache 伺服器,副档名 php3 是一个特殊的程式档案。当然副档名可以设成别的副档名,还有一些站台将 php 的程式副档名设为 phtml 也是不错的选择,反正这就要看 Webmaster 的规划了。
AddType application/x-httpd-php3 .php3/ 在 PHP 4.x 版的方法大致和 PHP 3.0.x 版相同,不同的地方在于 PHP 4.x 的目录名称及编译后的模组放置目录不同。此外,内定的副档名也由 .php3 变成了 .php。当然在安装前还是要先下载 PHP 4.x 的程式才行。
1.        gzip -dc apache_1.3.x.tar.gz | tar xvf -
2.        gzip -dc php-4.0.x.tar.gz | tar xvf -
3.        cd apache_1.3.x
4.        ./configure --prefix=/www
5.        cd ../php-4.0.x
6.        ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
7.        make
8.        make install
9.        cd ../apache_1.3.x
10.     ./configure --prefix=/www --activate-module=src/modules/php4/libphp4.a
11.     make
12.     make install
13.     cd ../php-4.0.x
14.     cp php.ini-dist /usr/local/lib/php.ini
在 httpd.conf 或 srm.conf 加入
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
而 PHP 4.x 版中对 Apache 伺服器加入了新的环境变数设定项。
php_value [PHP directive name] [value]
php_flag [PHP directive name] [On|Off]
php_admin_value [PHP directive name] [value]
php_admin_flag [PHP directive name] [On|Off]
在 PHP 3.0.x 版中,有些目录可能会有 .htaccess 的档案,使用 PHP 4.0.x 版的系统,必须将这个档案拿掉,可以使用改名字的方式或者直接删除。
13.   当一切设定好了之后,重新执行 Apache 伺服器。在 Apache 目录下有 bin 或是 sbin 的目录,其中会有 apachectl 的 shell 程式,输入 apachectl restart 就可以重新启动 Apache 伺服器了。赶快试看看 hello, world 程式吧!
PHP 的编译设定细部选项
在细部选项上,除了上述的安装简述外,也可以在编译时加入其它的选项。
阿帕契模组
语法 : --with-apache=DIR
说明 : 用本选项可以让 PHP 以阿帕契的模组方式使用, DIR 的字串可以是 /usr/local/apache 或其它安装阿帕契的目录
范例 : --with-apache=/var/lib/apache
fhttpd 伺服器模组
语法 : --with-fhttpd=DIR
说明 : 若使用 fttpd 伺服器,可以使用本指令编译 PHP 。用模组的方式配合 fttpd 伺服器,可以有较好的效能。
Adabas D 资料库
语法 : --with-adabas=DIR
说明 : 资料库系统为 Adabas D 资料库时需要加本选项。关于 Adabas D 资料库的细节,可以参考 http://www.adabas.com
范例 : --with-adabas=/usr/local/adabasd
dBase 资料表
语法 : --with-dbase
说明 : 只要加本选项,不用其它的参数或函式库, PHP 就会让系统有存取 dBase 资料表的功能。
filePro 资料库
语法 : --with-filepro
说明 : 不用指定资料库路径及其它函式库等,可以读取 filePro 资料库 ( 唯读 )
mSQL 资料库
语法 : --with-msql=DIR
说明 : 提供存取 mSQL 资料库。更多的细节请参考 mSQL 的网站 http://www.hughes.com.au
范例 : --with-msql=/usr/local/Hughes
MySQL 资料库
语法 : --with-mysql=DIR
说明 : 提供存取 MySQL 资料库。更多的细节请参考 MySQL 的网站 http://www.tcx.se
范例 : --with-mysql=/usr/local/mysql
iODBC 资料库装置
语法 : --with-iodbc=DIR
说明 : 提供 ODBC 资料库装置,用来存取后端资料库。更多的细节请参考 iODBC 的网站 http://www.iodbc.org
范例 : --with-iodbc=/usr/local/iodbc
OpenLink ODBC 资料库装置
语法 : --with-openlink=DIR
说明 : 使用 OpenLink ODBC 资料库装置,用来存取后端资料库。更多的细节请参考 OpenLink ODBC 的网站 http://www.openlinksw.com
范例 : --with-openlink=/usr/local/openlink
Oracle 资料库
语法 : --with-oracle=DIR
说明 : 使用 Oracle 资料库。 Oracle 的版本要在 7.3 版以上。您也可以在 PHP 程式中使用环境变数 ORACLE_HOME 来指定 Oracle 的路径。更多有关 Oracle 的资讯请参考 Oracle 的网站 http://www.oracle.com
范例 : --with-oracle=/export/app/oracle/product/7.3.2
PostgreSQL 资料库
语法 : --with-pgsql=DIR
说明 : 使用 PostgreSQL 资料库。更多有关 PostgreSQL 的资讯请参考 PostgreSQL 的网站 http://www.postgreSQL.org 或台湾的 Mirror http://postgresql.ccit.edu.tw
范例 : --with-pgsql=/usr/local/pgsql
Solid 资料库
语法 : --with-solid=DIR
说明 : 使用 Solid 资料库。更多有关 Solid 的资讯请参考 Solid 的网站 http://www.solidtech.com
范例 : --with-solid=/usr/local/solid
Sybase 资料库
语法 : --with-sybase=DIR
说明 : 使用 Sybase 资料库。更多有关 Sybase 的资讯请参考 Sybase 的网站 http://www.sybase.com
范例 : --with-sybase=/home/sybase
Sybase-CT 资料库
语法 : --with-sybase-ct=DIR
说明 : 使用 Sybase-CT 资料库。
范例 : --with-sybase-ct=/home/sybase
Velocis 资料库
语法 : --with-velocis=DIR
说明 : 使用 Velocis 资料库。有关 Velocis 资料库的进一步资料请参考 Raima 公司的网站 http://www.raima.com
范例 : --with-velocis=/usr/local/velocis
自订 ODBC 资料库驱动程式
语法 : --with-custom-odbc=DIR
说明 : 使用自订的 ODBC 函式库。当然,在使用本方式时要指定 CUSTOM_ODBC_LIBS CFLAGS 变数。例如在 QNX 机器上使用 Sybase SQL Anywhere 时可能要设定系统环境变数 CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ,并要在 PHP 设定加入 --with-custom-odbc=/usr/lib/sqlany50
范例 : --with-custom-odbc=/usr/local/odbc
不使用 ODBC 资料库驱动程式
语法 : --disable-unified-odbc
说明 : 使用本选项将使所有的 ODBC 资料库驱动程式不作用。本选项不用指定路径,而受本选项影响的选项有 --with-iodbc --with-solid --with-adabas --with-velocis --with-custom-odbc
LDAP 目录协定
语法 : --with-ldap=DIR
说明 : 若要使用目录协定 (Lightweight Directory Access Protocol, LDAP) 则必须要打开本选项。有关 LDAP 的细节,可以参考 RFC 文件的 RFC1777 RFC1778
范例 : --with-ldap=/usr/local/ldap.
mcrypt 编码函式库
语法 : --with-mcrypt=DIR
说明 : 当安装了 mcrypt 函式库后,可在编译 PHP 时加入本选项,让程式可以使用编解码功能。
范例 : --with-mcrypt=/usr/local/include
Sys V 信号
语法 : --enable-sysvsem
说明 : 要使用 SysV 的信号 (semaphores) 机制,则要打开本选项。
XML 支援
语法 : --with-xml
说明 : 打开本选项可以支援 James Clark's 写的 XML 剖析程式库。
维护模式
语法 : --enable-maintainer-mode
说明 : 本选项一般不会打开,除非是 PHP 开发人员比较有用。
常规表示程式库
语法 : --with-system-regex
说明 : 若您需要额外的常规表示功能,可以加入本选项。
PHP 设定档
语法 : --with-config-file-path=DIR
说明 : 用来指定 php3.ini php4.ini 的路径,供 PHP 初始化时使用。
范例 : --with-config-file-path=/usr/local/lib
PHP 执行路径
语法 : --with-exec-dir=DIR
说明 : 有时为了系统的安全性考量,会指定 PHP 程式一定要在哪个目录执行。
范例 : --with-exec-dir=/usr/local/bin
除错模式
语法 : --enable-debug
说明 : 本选项一般不会使用,除非在开发 PHP 程式时比较有用。它可以显示额外的错误讯息。
安全模式
语法 : --enable-safe-mode
说明 : 内定值是打开的,可以对系统安全提供比较多的保护。
变数追踪
语法 : --enable-track-vars
说明 : PHP 追踪 HTTP_GET_VARS HTTP_POST_VARS HTTP_COOKIE_VARS 三个变数,一般是打开的。
自动加引入字元
语法 : --enable-magic-quotes
说明 : 可让程式在执行时自动加入反斜线的引入字元。
开启除错器
语法 : --enable-debugger
说明 : 打开内建的 PHP 除错器。目前本功能还在实验阶段,尚未成熟。
取消路径 (discard path)
语法 : --enable-discard-path
说明 : 打开这个选项,使用者就不能透过浏览器读取 .htaccess 等和系统安全相关的档案。
高精确度数学函式
语法 : --enable-bcmath
说明 : 打开高精确度函式。必须要先安装本函式库,本选项方有效。
强迫 CGI 重导
语法 : --enable-force-cgi-redirect
范例 : 若使用 CGI VERSION 模式来执行 PHP 的设,打开本选项会增加安全性。例如使用者读 http://my.host/cgi-bin/php/secret/doc.html 遇到比较了解 PHP 系统的骇客级使用者可能会自已输入以下网址 http://my.host/secret/doc.html 来读取相关资讯。若 PHP Apache 编译在一起,让 PHP 变成 Apache 的一部份,则不需要加入本选项。
不使用短的标记
语法 : --disable-short-tags
说明 : 设定本选项后, PHP 的程式就不能使用短的 <? .... ?> 标记,一定要用 <?php ...... ?> 的长标记。
引入远端档案
语法 : --enable-url-includes
说明 : 设定本选项可让 PHP 程式可以引入 (include) 远端的 HTTP FTP 伺服器中的档案。
关闭语法效果
语法 : --disable-syntax-hl
说明 : 使用本选项会关闭 PHP 语法的彩色效果。
函式库路径
语法 : CPPFLAGS=-IDIR LDFLAGS=-LDIR
说明 : PHP 在安全或编译所需的函式库在特别的路径,需要加入本选项, LDFLAGS 表示函式库的路径, CPPFLAGS 表示标头档的路径。
范例: LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure
php.ini 设定细部选项

 
php.ini php3.ini PHP 在启动时会读取的设定档。该档的存放路径为 /usr/local/lib/ 。在 PHP 3.x 版的设定档为 php3.ini ;而在 PHP 4.x 版改为 php.ini 。若 PHP 安装成伺服器的模组,则在 Web 伺服器启动执行时会读取,之后就不再读取,因此更动设定的话要重新启动 Web 伺服器。若使用独立 PHP CGI 方式,则每次都读一次。
要看目前的系统设定,可以用 phpinfo() 看到。以下为选项设定
php_value name value
设定变数名称和值。本选项需 PHP 4.x 版之后方可使用。
php_flag name on|off
设定旗标布林变数选项。本选项需 PHP 4.x 版之后方可使用。
php_admin_value name value
设定 Apache 的设定档变数。原来在 .htaccess 的设定改到这个选项设定。本选项需 PHP 4.x 版之后方可使用。
php_admin_flag name on|off
设定布林变数当旗标。本选项需 PHP 4.x 版之后方可使用。
asp_tags boolean
设定 PHP 程式是否剖析以 ASP Script 语法 <% %> 的标记 (tag) 。本选项在 PHP 3.0.4 之后才可使用。更多的细节可以参考 嵌入方法 的部份。
auto_append_file string
设定本选项可以让指定的档案附加在原 PHP 程式后面自动执行。若 PHP 程式中有用到 exit() 函式,则指定的档案不会执行。参数 string 即为指定自动执行的档案。
auto_prepend_file string
设定本选项可以让指定的档案在原 PHP 程式之前自动执行。参数 string 即为指定自动执行的档案。
cgi_ext string
本选项设定 CGI 程式的副档名。
display_errors boolean
本选项设定是否要将执行的错误讯息显示在使用者的浏览器上。
doc_root string
设定伺服器的文件及 PHP 档案放置的根目录。
engine boolean
本选项需要使用阿帕契的模组方式使用 PHP 。可设定是否要使用 PHP 引擎。在 httpd.conf 中加入 php3_engine on/off 亦可设定某目录或某虚拟站台是否要用 PHP 解译器。
error_log string
本选项用来设定错误记录档。在 UNIX 系统上参数 string 即为档名。 Windows NT 会将记录记在事件检视器的日志之中。 Windows 95/98 则不支援系统记录。
error_reporting integer
本选项用来设定系统记录的等级。参数 integer 即为等级的级数旗标,可以加在一起,内定值为 7 ,见下表
级数
说明
1
一般的错误
2
一般的警告
4
剖析错误
8
非关键的警告
open_basedir string
本选项用来设定提供 PHP 存取的最底层目录。从该指定目录之下的档案或目录, PHP 程式方可存取。使用本选项主要是为了系统安全性的考量。参数 string 即为欲限制的最底层目录节点。值得注意的是在 UNIX 系统中,若该节点之下的档案或目录有符号链结 (symbolic link) ,则可能会让使用本选项的目的打折,因此在目录的设计上考量,也是 Webmaster 的重要任务。内定值是所有档案均可存取。在 PHP 3.0.7 版之后,可以设定多个底层目录。
gpc_order string
设定 GET/POST/COOKIE 三种模组的顺序及规则。参数 string 即为欲设定的规则,例如:设定成 "GP" 表示忽视 cookie ,并在存取方法 (method) 相同时,以 POST 取代 GET
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值