The following summarizes two implementation methods in PHP that can imitate users to enter login or post data. They are very useful to everyone. Friends in need can refer to them.
Through the curl function
CURL function library (Client URL Library Function) in PHP
curl_close — close a curl session
curl_copy_handle — copy all contents and parameters of a curl connection resource
curl_errno — Returns a numeric number containing error information of the current session
curl_error — Returns a string containing error information of the current session
curl_exec — Execute a curl session
curl_getinfo — Get information about a curl connection resource handle
curl_init — Initialize a curl session
curl_multi_add_handle — Add a separate curl handle resource to a curl batch session
curl_multi_close — Close a batch handle resource
curl_multi_exec — Parse a curl batch handle
curl_multi_getcontent — Returns the text stream of the obtained output
curl_multi_info_read — Gets the relevant transmission information of the currently parsed curl
curl_multi_init — Initializes a curl batch handle resource
curl_multi_remove_handle — Removes the curl batch handle resource A certain handle resource
curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"
curl_setopt_array — Set session parameters for a curl in the form of an array
curl_setopt — Set for a curl Session parameter
curl_version — Get curl-related version information
The role of the curl_init() function is to initialize a curl session. The only parameter of the curl_init() function is optional and represents a URL address.
The curl_exec() function is used to execute a curl session. The only parameter is the handle returned by the curl_init() function.
The curl_close() function is used to close a curl session. The only parameter is the handle returned by the curl_init() function.
Example
Copy code | |||||
|
模仿用户登录
模拟登录到sina
我们要抓取数据,可能是登录以后的内容,这个时候我们就要用到curl的模拟登录功能了。
代码如下 | 复制代码 |
<?php function checklogin( $user, $password ) define( "USERAGENT", $_SERVER['HTTP_USER_AGENT'] ); echo checklogin("zhangying215","xtaj227"); |
2.通过fsockopen
.PHP fsockopen函数说明:
Open Internet or Unix domain socket connection(打开套接字链接)
Initiates a socket connection to the resource specified by target .
fsockopen() returns a file pointer which may be used together with the other file functions (such as fgets() , fgetss() , fwrite() , fclose() , and feof() ).就是返回一个文件句柄
开启PHP fsockopen这个函数
PHP fsockopen需要 PHP.ini 中 allow_url_fopen 选项开启。
代码如下 | 复制代码 |
|
If
Warning: fsockopen() has been disabled for security reasons in D:…cos-html-cachecos-html-cache.php on line 35
Changed to another version of cos- html-cache, still doesn't work. Later I found the following method. (The result does not work, because the functions are disabled.)
Everyone, try it, there are few situations like mine, use other alternative functions.
1. How to disable fsockopen()
The following are two commonly used methods to disable fsockopen.
1. Modify php.ini and add fsockopen after disable_functions =
2. Modify php.ini and change allow_url_fopen = On to allow_url_fopen = Off
2. How to solve the problem that fsockopen function is disabled
1 . If the server does not disable pfsockopen at the same time, directly replace the fsockopen function with pfsockopen.
Specific operation: Search for the string fsockopen( in the program and replace it with pfsockopen(. The example is as follows
Before modification:
$fp = fsockopen($host, 80, $errno, $errstr, 30);
After modification:
$fp = pfsockopen($host, 80, $errno, $errstr, 30);