• ubuntu php访问带apache2基本认证的页面


    web服务器系统 Ubuntu 12.04

    安装curl库

    查找php5的curl支持库

    apt-cache search curl | grep php

    得到 php5-curl - CURL module for php5

    apt-get install curl php5-curl
    <?php
    header("Content-Type: text/html; charset=utf-8");
    
    $host = '10.0.1.191'; //主机   
    $path = '/itmng/cgi-bin/showlog.cgi?jsonoutput'; //路径   
    $user = 'smt'; //用户名   
    $pass = '123'; //密码   
    
    
    
    //使用curl
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://{$host}{$path}");
    curl_setopt($ch, CURLOPT_PORT, 80); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_TIMEOUT, 15); 
    curl_setopt($ch, CURLOPT_HEADER, 0); //设置头文件是否输出
    
    //curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch, CURLOPT_USERPWD, "{$user}:{$pass}");
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    //curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); //FALSE 不输出内容
    
    $return = curl_exec($ch);
    if (!$return) {
        echo curl_error($ch);
    }
    else {
        
        echo $return;
    }
    curl_close($ch);
    
    
      
    ?>

    打开/etc/php5/cli/php.ini 中的allow_url_fopen选项,设置为“ On”

    <?php
    $host = '10.0.1.191'; //主机   
    $path = '/itmng/cgi-bin/showlog.cgi?jsonoutput'; //路径   
    $user = 'smt'; //用户名   
    $pass = '123'; //密码   
    //$queryString = '?a=1&b=2'; //query字串   
      
    //使用fsockopen   
    $authorizationToken = base64_encode("{$user}:{$pass}");   
    //$fp = fsockopen('tcp://' . $host, 80, $errorNo, $errorMsg, 45);   
    $fp = fsockopen($host,80, $errorNo, $errorMsg, 3);    
    if (!$fp) {   
        echo 'error: ', $errorNo, ' ', $errorMsg;   
    }   
    else {   
       //$header  = "GET {$path}{$queryString} HTTP/1.1\r\n";   
      $header  = "GET {$path} HTTP/1.1\r\n";   
       $header .= "Host: {$host}\r\n";  
        //$header .= "User-Agent: {$_SERVER['HTTP_USER_AGENT']}\r\n";   
       $header .= "Authorization: Basic {$authorizationToken}\r\n"; //认证   
       $header .= "Content-Type: application/x-www-form-urlencoded\r\n";   
      // $header .= "Content-length: " . strlen($queryString) . "\r\n";   
    
        $header .= "Connection: Close\r\n\r\n";   
            
        fwrite($fp, $header);   
        $return = '';   
        
        while (!feof($fp)) {   
            $return .= fgets($fp);          
        }   
    
        //去掉头文件  
        if ($return)  
        {  
            $body = stristr($return, "\r\n\r\n");  
            $body =substr($body, 4, strlen($body));  
            $return = $body;  
        } 
    
        fclose($fp); 
        echo $return;   
    }
      
    ?>
  • 相关阅读:
    PHP 单态设计模式
    五中常见的PHP设计模式
    PHP如何定义类及其成员属性与操作
    thinkphp 中MVC思想
    1.4 算法
    1.3 迭代器
    1.2 容器-container
    1.1 STL 概述
    2.3顺序容器-deque
    2.2 顺序容器-list
  • 原文地址:https://www.cnblogs.com/wowchky/p/3059058.html
Copyright © 2020-2023  润新知