2012-09-06 114 views
1

給我最聰明的朋友,我搜索並嘗試了一切。我相信,這只是深夜,不讓我看到/理解問題。我應該提到,我仍然在從功能切換到OOP的過程中,而且這是我第一次啓用了捲曲。 :(因此,隨意批評任何不好的做法也..PHP類和捲曲

<?php 
class urlValidation 
{ 
    public $content; 
    public $validUrl; 
    public function __construct($validUrl) 
    { 
     $this->content = $content; 
     $this->validUrl = $validUrl; 
     $this->getContents(); 
    } 
    public function getContents() 
    { 
     $this->curlHandler = curl_init($this->validUrl); 
     curl_setopt($this->curlHandler, CURLOPT_NOBODY, false); 
     curl_setopt(CURLOPT_RETURNTRANSFER, false); //changing false to true is the answer! 
     $this->content = curl_exec($this->curlHandler); 
     curl_close($this->curlHandler); 
    } 
} 
?> 

$suggestUrl = 'http://www.google.com'; 
$validate = new urlValidation($suggestedUrl); 

對於所有的最好的我叫,我想不通爲什麼$這個 - >內容打印到。沒有被調用的屏幕我只是單純的想的是返回的HTML被存儲在一個變量,而不是返回/打印/附加到文件

+0

向我們展示你是如何初始化類並調用它的方法 –

+0

能否請你說明什麼手段「版畫屏而沒有所謂的」 - 這是什麼它打印?以及你在哪裏實例化了該類的新對象。 另外,你在構造函數中設置了'$ this-> content = $ content',這沒有多大意義 - '$ content'從哪裏來?最後,遵守慣例是一個很好的習慣,所以爲什麼不用大寫字母開始一個班級的名字。 – Havelock

+0

@havelock我的意思是像讀取文件的內容並將其附加到dom中......就好像echo $ this->內容正在發生,但它不是! –

回答

3

PHP文件解釋這一切。)

curl_exec成功返回TRUE或失敗返回FALSE。但是,如果設置了CURLOPT_RETURNTRANSFER選項,它將在成功時返回結果,在失敗時返回FALSE。

所以$this->content = curl_exec($this->curlHandler);之前,你需要添加此

curl_setopt($this->curlHandler, CURLOPT_RETURNTRANSFER, true); 
+0

它仍然返回並打印到第二頁的HTML而不被調用。 :/ lol所有我想要的是返回的HTML保存到一個變量。 –

+0

@JaredDrake'我想要的是將返回的html保存到一個變量中。''$ this-> content = file_get_contents('http://google.com');'會得到相同的結果嗎? –

+0

@JaredDrake對不起,我的錯,我忘了添加'$ this-> curlHandler'作爲'curl_setopt'的第一個參數,選項應該是'true'。見編輯的答案。 –