对于PHP开发者来说,使用get_contents的函数已经是家常便饭了。该函数用来获取指定url的内容,返回值是一个字符串。相较于file_get_contents函数,get_contents可以使用更多的参数,可以更加灵活地对所取得的内容进行处理。下面我们一起来详细了解一下get_contents函数的使用方法。
首先,下面我们来看一个简单的例子。假如我们需要获取http://www.example.com这个页面的内容,并将其打印在页面上,可以使用下面的代码:
$url = 'http://www.example.com'; $content = file_get_contents($url); echo $content;
上面的代码很简单,第一行定义了所要访问的url,第二行用file_get_contents函数来获取该url对应页面的内容,最后一行使用echo语句将所获得的内容输出到页面上。
然而,在实际应用中,我们经常需要通过get_contents函数来获取一些需要登录才能访问的页面,这时候就需要使用更多的参数来进行设置了。例如,我们需要登录才能访问http://www.example.com/login页面,经过登录后才能进入http://www.example.com/user页面,以下是示例代码:
$url = 'http://www.example.com/login'; $post_data = 'username=your_username&password=your_password'; $options = array( 'http' =>array( 'method' =>'POST', 'header' =>'Content-type: application/x-www-form-urlencoded', 'content' =>$post_data ) ); $context = stream_context_create($options); $response = file_get_contents($url, false, $context); $cookie = $http_response_header[6]; $url = 'http://www.example.com/user'; $options = array( 'http' =>array( 'method' =>'GET', 'header' =>'Cookie: ' . $cookie ) ); $context = stream_context_create($options); $response = file_get_contents($url, false, $context); echo $response;
在上面的示例代码中,我们首先访问登录页面,并使用post方式提交用户名和密码以模拟登录。随后,我们使用stream_context_create函数来创建一个包含我们所需参数的上下文。然后,我们使用file_get_contents函数来访问登录后的页面,并将所获取的cookie存入$cookie变量中。最后,我们再次使用stream_context_create函数来创建用于访问已登录页面的上下文,并在header里设置cookie,从而成功登录并获取了页面内容。
当然,上面的示例只是get_contents函数的冰山一角,该函数具有非常强大的功能,例如我们还可以使用其它方法来访问https页面、设置超时时间等等。如果你对此有进一步的研究,你会发现get_contents函数能为你的开发工作带来很多便利。