PHP CURL CURLOPT参数说明(curl_setopt)
PHP中的CURL库:CURLOPT参数详解
在PHP开发中,CURL库是一个强大的工具,能够帮助我们与服务器进行交互、上传文件、获取网页内容等。在使用CURL时,我们需要设置一系列的CURLOPT参数来配置请求的各种属性。下面,我们就来详细了解一下这些参数。
让我们来看一下CURLOPT_RETURNTRANSFER参数。这个参数对于控制CURL请求的返回结果非常重要。
当我们使用curl_set()函数设置CURLOPT_RETURNTRANSFER为1时,请求的结果将作为字符串返回,而不是直接输出。如果请求失败,将返回FALSE。相反,如果我们设置CURLOPT_RETURNTRANSFER为0或者不使用这个选项,那么请求成功时将会自动输出返回的内容,失败时仍然返回FALSE。
接下来,我们再来看看curl_set()函数本身。这是一个为CURL会话设置选项的函数。它接受三个参数:会话标识符ch、选项option和选项的值value。
在option参数中,我们可以设置许多不同的值,这些值将作为长整形使用。例如:
1. CURLOPT_INFILESIZE:当我们上传文件到远程站点时,这个选项告诉PHP我们上传文件的大小。
2. CURLOPT_VERBOSE:如果我们希望CURL报告每一个意外的情况,可以将这个选项设置为非零值。
3. CURLOPT_HEADER:如果我们希望输出的结果中包含头部信息,也需要将这个选项设置为非零值。
除此之外,还有许多其他的选项,如CURLOPT_NOPROGRESS、CURLOPT_NOBODY、CURLOPT_FAILONERROR等,这些选项可以帮助我们更好地控制CURL请求的行为。
例如,如果我们不希望PHP显示CURL传输的进程条,可以将CURLOPT_NOPROGRESS设置为非零值。如果我们不想在输出中包含body部分,可以将CURLOPT_NOBODY设置为非零值。
正确理解和使用这些CURLOPT参数,将使我们能够更好地控制CURL请求的行为,从而实现更丰富的功能。希望这篇文章能够帮助您更好地理解和使用PHP中的CURL库。您所提到的这些选项在PHP的cURL库中扮演着关键的角色,它们允许开发者精确地控制和定制HTTP请求。以下是对这些选项的生动且详细的描述,同时保持原文的风格特点:
在这个神奇的cURL世界里,有一系列的选项等待你去,它们像神秘的宝箱一样,藏着无限可能。
• CURLOPT_TIMEVALUE:这个选项就像时间的守护者,它守护着你的请求时间。你可以设定一个具体的时间值,这个时间将被用作CURLOPT_TIMECOND_IFMODSINCE的默认值。这样,你就可以精确地控制请求何时被发送出去。
接下来的选项都如同神秘的魔法咒语,传递特定的字符串给cURL,使其为你工作:
• CURLOPT_URL:这是你想的,像是冒险的地图,指引你前往你想获取数据的地点。
• CURLOPT_USERPWD和CURLOPT_PROXYUSERPWD:这两个选项像是你网络世界的通行证,传递用户名和密码,让你顺利连接或连接代理服务器。
• CURLOPT_RANGE:这个选项允许你指定数据的范围,就像是在图书馆里寻找特定的书籍和页码一样。只需输入你想指定的范围,如“X-Y”,X和Y是可以被除外的。你也可以指定多个间隔,用逗号分隔(例如X-Y,N-M)。
• CURLOPT_POSTFIELDS:这个选项包含了你想要通过HTTP POST操作发送的所有数据,就像一个装满信息的信封,被发送到目的地。
• CURLOPT_REFERER和CURLOPT_USERAGENT:这两个选项在HTTP请求中包含特定的头部信息。前者像一个推荐信,告诉服务器你是从哪里来的;后者则像一个身份标识,告诉服务器你的浏览器类型。
• 对于FTP操作,CURLOPT_FTPPORT选项允许你指定一个IP地址,告诉远程服务器去连接我们指定的IP地址。你可以输入一个IP地址、主机名、网络界面名(在UNIX下),或者默认的系统IP地址。
• CURLOPT_COOKIE、CURLOPT_SSLCERT和CURLOPT_SSLCERTPASSWD:这些选项允许你传递HTTP cookie的头连接、包含PEM格式证书的字符串以及使用该证书所需的密码。它们像是网络世界中的通行证和密钥,确保你的数据安全和顺利传输。
还有一些选项要求文件描述,如CURLOPT_FILE、CURLOPT_INFILE、CURLOPT_WRITEHEADER和CURLOPT_STDERR。这些选项涉及到输入输出的文件处理,确保数据能够正确地写入和读取。
例一:
代码示例如下:
我们创建一个临时文件 `$cookie_jar` 来存储cookie信息。接着,我们使用 `curl_init()` 初始化一个CURL会话。设置URL指向需要登录的页面后,我们通过 `curl_set()` 来配置我们的请求。我们把登录所需的信息如用户名、密码以及行动指令准备好,并通过 `CURLOPT_POSTFIELDS` 发送出去。为了确保我们的会话能够记住登录状态,我们把返回的cookie信息保存在之前创建的 `$cookie_jar` 文件中。我们还设置了其他的参数,比如是否显示头信息、是否输出页面内容等。执行 `curl_exec()` 进行登录操作,然后关闭会话获取数据。这样,我们就可以获取到已登录状态的页面内容了。
例二:
再来看这个例子:
初始化一个新的CURL会话 `ch2` 并设置目标URL。我们配置了相关的参数,如禁用显示头信息、设置返回数据的处理方式等。这里特别重要的是设置 `CURLOPT_COOKIEFILE` 以使用先前保存的cookie文件,确保会话的连续性。执行 `curl_exec()` 获取数据后,我们处理并输出返回的内容。这个方法的稳定性已经得到了实践的验证。
例三:
接下来是第三个例子:
原代码:
```bash
curl_set($ch, CURLOPT_POSTFIELDS, ...); // 设置POST请求的数据参数
curl_set ($ch, CURLOPT_HEADER, true); // 开启头部信息的返回
curl_exec($ch); // 执行curl会话
if (curl_errno($ch)) { // 检查是否有错误发生
print curl_error($ch); // 输出错误信息
} else {
curl_close($ch); // 关闭curl会话
}
```
```ruby
我们初始化一个curl会话,通过调用curl_init函数,返回一个会话句柄$ch。这个句柄将是我们与服务器交互的桥梁。
接下来,我们为这次会话设置一些参数。使用curl_set函数,我们将POST请求的数据以表单形式进行编码并设置其他相关参数。我们决定开启头部信息的返回,以便于了解服务器响应的更多细节。
紧接着,我们执行这次curl会话。通过调用curl_exec函数,我们将之前设置的参数发送到服务器,并等待响应。此时的$ch就像是一封通往服务器的信,承载着我们的请求。
然后,我们检查这次会话是否出现了错误。通过curl_errno函数检查是否有错误编号返回,如果有,则通过curl_error函数输出错误信息,帮助我们定位问题所在。
如果一切正常,那么最后我们关闭这次curl会话,释放相关资源。就像我们结束一次通话一样,通过curl_close函数来优雅地结束这次会话。
```
至于你提到的其他curl函数,它们各自承担着不同的角色:
curl_close:关闭一个curl会话,释放资源。
curl_copy_handle:复制一个curl连接的所有内容和参数,便于我们在不同的请求之间共享设置。
curl_errno和curl_error:返回关于当前会话的错误信息,帮助我们调试和排查问题。
curl_exec:执行一个curl会话,发送请求并获取响应。
其他函数如curl_getinfo、curl_multi系列函数等,都是用于处理更复杂的场景和需求。
curl库为我们与服务器之间的数据交互提供了强大的支持。通过合理的运用和配置,我们可以轻松地完成各种网络请求任务。深入Curl库的功能与运用
Curl库是一个强大的工具,能够让我们与服务器进行通信,获取或发送数据。下面我们来详细一些Curl库的主要功能及其运用。
一、获取Curl版本信息
通过调用curl_version()函数,我们可以获取Curl库的版本信息。这个函数不接受任何参数,返回的是一个包含版本信息的数组。
二、利用curl_getinfo()获取连接资源的信息
curl_getinfo()函数用于获取Curl连接资源句柄的信息。它接受两个参数,第一个是curl的资源句柄,第二个是一组常量,用于指定我们想要获取的信息类型。
这些可选的常量包括:
1. CURLINFO_EFFECTIVE_URL:一个有效的URL地址。
2. CURLINFO_HTTP_CODE:一个收到的HTTP代码。
3. CURLINFO_FILETIME:远程获取文档的时间,如果无法获取,则返回值为“-1”。
4. 其他更多关于传输时间、下载/上传速度、header大小等信息。
三、设置Curl会话参数
curl_set()和curl_set_array()函数的作用是为一个curl设置会话参数。例如,我们可以设置CURLOPT_URL来指定请求的URL,设置CURLOPT_HEADER为false来避免返回header信息等。
下面是一段示例代码:
```php
$ch = curl_init();
$fp = fopen("example_homepage.txt", "w");
curl_set($ch, CURLOPT_FILE, $fp);
$options = array(
CURLOPT_URL => '
CURLOPT_HEADER => false
);
curl_set_array($ch, $options);
curl_exec($ch);
curl_close($ch);
fclose($fp);
```
在这段代码中,我们初始化了一个curl会话,设置了URL和其他的会话参数,然后执行curl请求,最后关闭curl会话和文件指针。
四、其他功能
除了上述功能外,Curl库还提供了许多其他功能,例如自动设置referer信息、转换换行符、使用全局DNS缓存等。这些功能都可以通过设置相应的参数来实现。
Curl库是一个强大的工具,能够帮助我们与服务器进行通信,获取或发送数据。通过深入理解并熟练运用Curl库的功能,我们可以更加高效地进行网络编程。在cURL库中,各种选项用于定制HTTP请求和服务器响应的处理方式。这些选项不仅增强了cURL的功能性,还允许开发者根据特定需求进行精细调整。下面是对一些常用cURL选项的生动描述:
启用`CURLOPT_FOLLOWLOCATION`后,cURL就像一位执着的者,当服务器返回“Location:”指令时,它会毫不犹豫地追踪这个指示,递归地前往新的URL地址。为了防止无尽的跳转,你可以使用`CURLOPT_MAXREDIRS`来设定跳转的最大次数。
当交互完成后,`CURLOPT_FORBID_REUSE`选项就像一位决绝的断开者,强制断开与服务器之间的连接,不允许再次使用已存在的连接。如果你想每次都获取一个新的连接,不受缓存连接的影响,那就启用`CURLOPT_FRESH_CONNECT`。
对于FTP下载,你可以选择使用`CURLOPT_FTP_USE_EPRT`和`CURLOPT_FTP_USE_EPSV`来尝试不同的连接方式。前者允许使用EPRT和LPRT命令,后者则在尝试EPSV命令失败后再回退到PASV模式。如果你希望追加到远程文件而不是覆盖它,就设置`CURLOPT_FTPAPPEND`为TRUE。同样地,如果你只想列出FTP目录中的文件名称而不下载它们,就启用`CURLOPT_FTPLISTONLY`。
当启用`CURLOPT_HEADER`时,服务器的响应头就像一封密函被解开,被作为数据流输出。对于HTTP请求,虽然默认方法是GET,但你可以通过`CURLOPT_HTTPGET`来调整它。如果需要经过HTTP代理传输数据,就启用`CURLOPT_HTTPPROXYTUNNEL`。如果你想忽略所有由cURL传递给PHP的信号,那么启用`CURLOPT_NOSIGNAL`就对了。通过`CURLOPT_POST`和`CURLOPT_PUT`,你可以分别发送POST请求和上传文件。如果你希望获取的文件流而不是直接输出,那就设置`CURLOPT_RETURNTRANSFER`为TRUE。
对于SSL连接,你可能需要验证对等方的证书。这可以通过设置`CURLOPT_SSL_VERIFYPEER`来实现。你还可以指定用于验证的证书信息或证书目录。如果你在使用FTP或LDAP时希望数据以纯文本形式传输,那就设置`CURLOPT_TRANSFERTEXT`为TRUE。对于某些情况下需要持续在多个locations中追加用户名和密码信息,即使域名已发生改变的情况,可以启用`CURLOPT_UNRESTRICTED_AUTH`。
这些cURL选项为开发者提供了丰富的工具集,允许他们根据具体需求定制HTTP请求和响应的处理方式。通过合理地使用这些选项,开发者可以充分利用cURL的功能,实现各种网络交互任务。CURLOPT系列参数在文件传输和网络通信中发挥着重要作用。当启用CURLOPT_UPLOAD时,文件传输功能得以允许,使数据的上传成为可能。当CURLOPT_VERBOSE被激活时,所有的信息都会被详细汇报,并存储在STDERR或指定的CURLOPT_STDERR中,便于用户了解传输的详细过程。
数据传输的效率与CURLOPT_BUFFERSIZE息息相关。这个参数决定了每次从网络或文件中读取或写入的数据量大小。合理地设置此值,可以优化数据传输的速度和稳定性。
关于连接的管理,CURLOPT系列参数同样提供了精细的控制。例如,CURLOPT_CLOSEPOLICY决定了在达到最大连接数(由CURLOPT_MAXCONNECTS设定)时,应关闭哪些连接。这个策略可以是最近最少使用(CURLCLOSEPOLICY_LEAST_RECENTLY_USED)的,也可以是最老(CURLCLOSEPOLICY_OLDEST)的连接。目前,curl还不支持其他的关闭策略。
在建立连接的过程中,用户也可以控制等待的时间。通过设置CURLOPT_CONNECTTIMEOUT,用户可以设定在发起连接前等待的最长时间。如果设置为0,则不等待,立即进行连接尝试。
对于DNS缓存的处理,CURLOPT_DNS_CACHE_TIMEOUT参数设定了在内存中保存DNS信息的时间。默认情况下,这个值是120秒。这对于频繁的网络请求来说,可以大大提高DNS的效率。
在进行FTP文件传输时,CURLOPT_FTPSSLAUTH参数决定了FTP的认证方式。用户可以选择SSL、TLS或者让curl根据环境自行决定。这对于保障数据传输的安全性至关重要。
HTTP通信中,CURLOPT系列参数同样发挥着重要的作用。例如,CURLOPT_HTTP_VERSION允许用户设定curl使用的HTTP协议版本。CURLOPT_HTTPAUTH参数决定了使用的HTTP验证方法,如BASIC、DIGEST等。当需要上传文件时,CURLOPT_INFILESIZE参数可以帮助用户设定上传文件的大小。
在数据传输过程中,速度是一个重要的考量因素。当传输速度低于设定的CURLOPT_LOW_SPEED_LIMIT时,会根据设定的CURLOPT_LOW_SPEED_TIME来判断是否因为太慢而取消传输。这对于防止长时间的低速传输非常有用。
CURLOPT_PORT
这是一个设定连接端口的参数。在建立网络链接时,端口号是一个至关重要的因素。你是否需要连接到特定的服务器端口?使用此选项可以明确指定。
CURLOPT_PROXYAUTH
当通过代理服务器连接时,此选项用于设定HTTP认证方法。目前仅支持CURLAUTH_BASIC和CURLAUTH_NTLM。如果你的代理服务器需要身份验证,这里就是配置的地方。
CURLOPT_PROXYPORT与CURLOPT_PROXYTYPE
当你需要通过代理服务器进行连接时,这些选项非常重要。你可以设置代理服务器的端口号(PROXYPORT)和类型(PROXYTYPE)。类型可以是CURLPROXY_HTTP(默认)或CURLPROXY_SOCKS5。
CURLOPT_RESUME_FROM
这个选项允许你在恢复传输时指定一个字节偏移量,实现断点续传的功能。这对于大文件下载或上传非常有用,当网络中断或其他问题时,可以从中断的地方继续传输。
在SSL安全连接方面,有几个关键选项:
CURLOPT_SSL_VERIFYHOST
此选项用于验证SSL对等证书的域名是否存在。设置为1时检查是否存在主机名,设置为2时不仅检查主机名是否存在,还验证其是否与提供的主机名匹配。
CURLOPT_SSLVERSION
设置使用的SSL版本,可以是2或3。在某些情况下,必须手动设置此选项。
还有关于证书验证的选项:
CURLOPT_CAINFO
指定包含用于验证对端证书的文件的名称。当与CURLOPT_SSL_VERIFYPEER结合使用时才有意义。
CURLOPT_CAPATH
指定包含多个CA证书的目录。与CURLOPT_SSL_VERIFYPEER一起使用。
还有一些关于HTTP请求头和传输控制的选项:
CURLOPT_COOKIE
设定HTTP请求中的“Set-Cookie:”部分的内容。这对于维护用户会话或存储用户偏好非常有用。
CURLOPT_COOKIEFILE
包含cookie信息的文件名,可以是Netscape格式或HTTP风格的header信息。使用这个选项可以轻松地在多个请求之间保持和管理cookie信息。
还有关于时间控制和响应处理的选项,如CURLOPT_TIMECONDITION, CURLOPT_TIMEOUT, CURLOPT_TIMEVALUE,它们允许你控制请求的时间限制和处理服务器响应的特定条件。
这些CURLOPT选项为开发者提供了细致入微的控制权,使得网络请求更加灵活和可靠。无论是通过代理服务器进行连接、验证SSL证书、管理cookie还是控制请求的时间限制,这些选项都能够帮助你实现各种复杂的网络操作。在深入网络传输的细节时,我们遇到了许多与HTTP请求和SSL加密相关的选项。这些选项通常用于定制和配置我们的网络请求,以确保它们能够按照预期的方式工作。让我们逐一这些选项的含义和使用场景。
我们有`CURLOPT_COOKIEJAR`选项。这个选项允许我们指定一个文件来存储cookie信息。这对于跟踪和管理网站的会话信息非常有用。在连接关闭后,cookie信息将保存在指定的文件中。
接下来是`CURLOPT_CUSTOMREQUEST`选项。这是一个自定义的HTTP请求方法,用于替代标准的“GET”或“HEAD”。这对于执行不太常见的HTTP请求,如“DELETE”,非常有用。只需输入相应的HTTP方法名称,例如“GET”,“POST”,“CONNECT”等,不要输入完整的HTTP请求行。
然后是`CURLOPT_ENCODING`选项。这个选项允许我们设置HTTP头部中的“Accept-Encoding”部分,以指定客户端支持的编码格式。支持的编码格式包括“identity”,“deflate”和“gzip”。如果设置为空字符串,则表示客户端支持所有编码格式。
我们还有`CURLOPT_FTPPORT`选项。这个选项用于设置FTP的“POST”指令所使用的IP地址。它告诉远程服务器连接到我们指定的IP地址。这个字符串可以是普通的IP地址、主机名或工作接口名称(在Unix下)。如果设置为“-”,则使用系统默认的IP地址。
另一个重要的选项是`CURLOPT_INTERFACE`,它允许我们设置外部网络接口的名称。这可以是接口名称、IP地址或主机名。这对于通过特定的网络接口进行网络传输非常有用。
还有与Kerberos 4安全级别相关的`CURLOPT_KRB4LEVEL`选项,以及与SSL加密相关的选项如`CURLOPT_RANDOM_FILE`、`CURLOPT_SSL_CIPHER_LIST`等。这些选项允许我们配置SSL加密的各个方面,以确保我们的数据传输是安全的。
我们还有与HTTP POST操作相关的选项,如`CURLOPT_POSTFIELDS`和与代理服务器相关的选项如`CURLOPT_PROXY`和`CURLOPT_PROXYUSERPWD`等。这些选项允许我们配置我们的网络请求,以便通过代理服务器进行传输,或者设置HTTP POST操作的相关参数。
cURL选项详解
1. CURLOPT_SSLCERTTYPE: 证书格式。支持的格式有"PEM"(默认)、"DER"和"ENG"。确保您的SSL证书采用正确的格式。
2. CURLOPT_SSLENGINE: 指定CURLOPT_SSLKEY中私有SSL密钥的加密引擎标识符。
3. CURLOPT_SSLENGINE_DEFAULT: 用于不对称加密操作的默认加密引擎标识符。
4. CURLOPT_SSLKEY: 含有私有SSL密钥的文件名。确保密钥文件的安全性和正确性。
5. CURLOPT_SSLKEYPASSWD: 使用私有SSL密钥所需的秘密密码。注意,由于此选项包含敏感信息,务必确保包含它的PHP脚本的安全性。
6. CURLOPT_URL: 需要获取的URL地址,可以在PHP的curl_init()函数中设置。这是每个HTTP请求的核心。
7. CURLOPT_USERAGENT: 在HTTP请求中包含的“user-agent”头字符串,有助于识别请求的来源。
8. CURLOPT_USERPWD: 提供连接所需的用户名和密码,格式为“[username]:[password]”。
9. CURLOPT_HTTP200ALIASES: 设置不以error形式处理HTTP 200响应,格式为一个数组。让开发者更灵活地处理HTTP响应。
10. CURLOPT_HTTPHEADER: 设置传输内容的header数组的选项,允许自定义HTTP请求头。
11. CURLOPT_POSTQUOTE, CURLOPT_QUOTE: 针对FTP请求,分别执行FTP服务器上的命令。提供额外的FTP操作功能。
12. CURLOPT_FILE: 设置输出文件的位置,值是一个资源类型,默认为STDOUT(浏览器)。
13. CURLOPT_INFILE: 在上传文件时需要读取的文件地址,值是一个资源类型。
14. CURLOPT_STDERR, CURLOPT_WRITEHEADER: 分别设置错误输出地址和header部分内容的写入文件地址,均为资源类型。
还有一系列回调函数选项,如CURLOPT_HEADERFUNCTION, CURLOPT_PASSWDFUNCTION, CURLOPT_READFUNCTION, CURLOPT_WRITEFUNCTION,它们允许开发者在cURL请求的不同阶段介入并处理数据。
关于函数部分:
curl_copy_handle():此函数的作用是拷贝一个curl连接资源的所有内容和参数,非常适用于需要复制现有curl会话的情况。通过复制句柄,可以轻松地在多个请求之间共享配置和状态。
使用cURL进行HTTP请求时,经常需要处理错误。curl_error() 和 curl_errno() 函数分别返回包含当前会话错误信息的字符串和数字编号,帮助开发者诊断和解决cURL请求中的问题。
通过这些细致的配置选项和强大的函数,cURL为PHP开发者提供了构建复杂HTTP请求的出色工具。从简单的GET请求到复杂的FTP操作,cURL都能轻松应对。在编程世界中,cURL是一个强大的工具,用于处理网络资源传输。当我们谈到批处理和多句柄操作时,cURL提供了一系列函数来处理这些复杂的任务。让我们深入这些函数的功能和它们在整体工作流程中的作用。
让我们从源头开始,也就是初始化一个cURL批处理会话。curl_multi_init()函数的任务就是启动一个全新的cURL批处理句柄资源,为后续的多个句柄添加和操作做好准备。一旦这个批处理句柄被初始化,我们就可以开始向其中添加单独的cURL句柄资源了。这时,curl_multi_add_handle()函数就派上了用场,它将单独的cURL句柄资源添加到已经初始化的批处理会话中。这个函数有两个参数:一个是批处理句柄资源本身,另一个是要添加的单独cURL句柄资源。
接下来是curl_multi_exec(),这个函数的作用是对批处理句柄进行。这个函数有两个参数:一个是批处理句柄资源,另一个是引用值的参数,表示剩余需要处理的单个cURL句柄资源的数量。通过这个函数,我们可以追踪哪些句柄资源尚未被处理,以便我们可以有效地管理我们的批处理会话。
在处理完所有的句柄后,我们可能需要从批处理句柄资源中移除某些句柄资源。这时,我们可以使用curl_multi_remove_handle()函数。它的作用就是从批处理句柄资源中移除指定的句柄资源。这个函数同样需要两个参数:一个是批处理句柄资源本身,另一个是要移除的单独cURL句柄资源。
当我们完成了所有的批处理操作后,我们需要关闭批处理句柄资源以释放系统资源。这时,curl_multi_close()函数就派上了用场。它的任务就是关闭一个批处理句柄资源,确保所有的资源都被正确地释放。
在实际编程应用中,我们还可以使用其他cURL函数来完善我们的操作。例如,curl_multi_getcontent()函数可以在设置了CURLOPT_RETURNTRANSFER的情况下,返回获取的输出的文本流。而curl_multi_info_read()函数则可以获取当前的cURL的相关传输信息。还有一个函数curl_multi_select(),它可以获取与cURL扩展关联的所有套接字,这些套接字随后可以被“选择”,以便进行进一步的操作。
这些函数共同构成了cURL批处理的强大工具集,使我们能够同时处理多个网络资源传输,大大提高了编程效率和性能。通过理解这些函数的作用和工作方式,我们可以更有效地使用它们来构建强大的网络应用程序。
平面设计师
- PHP CURL CURLOPT参数说明(curl_setopt)
- JS实现网页顶部向下滑出的全国城市切换导航效果
- jQuery form插件之formDdata参数校验表单及验证后提交
- jQuery对象初始化的传参方式
- 莫非这就是爱情
- 解决layui 三级联动下拉框更新时回显的问题
- 少女风vue组件库的制作全过程
- JQuery悬停控制图片轮播——代码简单
- 在Bootstrap开发框架中使用dataTable直接录入表格行
- javascript手风琴下拉菜单实现代码
- js实现鼠标拖拽多选功能示例
- phplot生成图片类用法详解
- 小张与小丽之间的故事:如何他们的关系
- ASP.NET显示农历时间改进版
- 《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
- PHP设计模式之适配器模式定义与用法详解