php获取url各个部分的函数(php获取地址栏参数)

发布时间:2022-11-13

本文目录一览:

  1. php打开URL的几种方法
  2. php中有什么方法或函数可以取到页面中的所有url
  3. php获取url参数程序代码总结

php打开URL的几种方法

PHP中打开URL地址的几种方法总结,这里的函数主要用于小偷采集等函数。 1: 用file_get_contents 以get方式获取内容

$url = '';
$html = file_get_contents($url);
//print_r($http_response_header);
echo $html;
printhr();
printarr($http_response_header);
printhr();

示例代码2: 用fopen打开url 以get方式获取内容

$fp = fopen($url, 'r');
printarr(stream_get_meta_data($fp));
printhr();
while (!feof($fp)) {
    $result .= fgets($fp, 1024);
}
echo "url body: $result";
printhr();
fclose($fp);

示例代码3:用file_get_contents函数, 以post方式获取url

$data = array('foo' => 'bar');
$data = http_build_query($data);
$opts = array(
    'http' => array(
        'method' => 'POST',
        'header' => "Content-type: application/x-www-form-urlencoded" .
                    "Content-Length: " . strlen($data) . "\r\n",
        'content' => $data
    ),
);
$context = stream_context_create($opts);
$html = file_get_contents('http://example.com', false, $context);
echo $html;

示例代码4:用fsockopen函数打开url,以get方式获取完整的数据,包括header和body

function get_url($url, $cookie = false) {
    $url = parse_url($url);
    $query = $url['path'] . "?" . $url['query'];
    echo "Query:" . $query;
    $fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80, $errno, $errstr, 30);
    if (!$fp) {
        return false;
    } else {
        $request = "GET $query HTTP/1.1\r\n";
        $request .= "Host: " . $url['host'] . "\r\n";
        $request .= "Connection: Close\r\n";
        if ($cookie) $request .= "Cookie: $cookie\r\n";
        $request .= "\r\n";
        fwrite($fp, $request);
        while (!@feof($fp)) {
            $result .= @fgets($fp, 1024);
        }
        fclose($fp);
        return $result;
    }
}
// 获取url的html部分,去掉header
function GetUrlHTML($url, $cookie = false) {
    $rowdata = get_url($url, $cookie);
    if ($rowdata) {
        $body = stristr($rowdata, "\r\n\r\n");
        $body = substr($body, 4, strlen($body));
        return $body;
    }
    return false;
}

php中有什么方法或函数可以取到页面中的所有url

老兄你好,我们一起来探讨下这个思路:

  1. 你说页面内容你已经拿到,那么我们的范围应该是对这个文件进行操作。
  2. 打开文件,把文件内容读入一个数组里。(具体涉及到的函数去查手册,对你不是问题。)然后循环这个数组,对每一行进行处理。
  3. URL通常放在哪里?你猜对了,当然是放在<a href="URL">超链接标签里了。如果该行里有超链接标签,你就设法把""里的URL截取出来,没有就下一行,直至文件循环结束。 ////////思路就是这样的,具体的函数你去查都很简单的,祝你成功。

php获取url参数程序代码总结

parse_url函数

我们先来了解一下parse_url函数,官方解释: 说明

mixed parse_url ( string $url [, int $component = -1 ] )

本函数解析一个URL并返回一个关联数组,包含在URL中出现的各种组成部分。 本函数不是用来验证给定URL的合法性的,只是将其分解为下面列出的部分。不完整的URL也被接受,parse_url()会尝试尽量正确地将其解析。 要解析的URL。无效字符将使用_来替换。 实例

$url = "http://www.example.com/welcome/";
$parts = parse_url($url);
print_r($parts);

输出:

Array
(
    [scheme] => http
    [host] => www.example.com
    [path] => /welcome/
)

也可以自己去写一个算法!如下

function getParams() {
    $url = '/index.php?_p=index&_a=show&x=12&y=23';
    $refer_url = parse_url($url);
    $params = $refer_url['query'];
    $arr = array();
    if (!empty($params)) {
        $paramsArr = explode('&', $params);
        foreach ($paramsArr as $k => $v) {
            $a = explode('=', $v);
            $arr[$a[0]] = $a[1];
        }
    }
    return $arr;
}

调用方法

$arr = getParams();
print_r($arr);

结果:

Array
(
    [_p] => index
    [_a] => show
    [x] => 12
    [y] => 23
)