Codeigniteコントローラには、インデックスとget_dataという2つの関数があります。インデックスは、TEXTAREAから$_POST
値を取得し、各住所(テキストエリア=新しい住所に新しい行)ためget_dataを初期化。cURLを使用した不正な再帰関数
INDEX関数:
public function index()
{
if (isset($_POST['wartosc'])) {
$adresy = explode("\n", $_POST['wartosc']);
foreach ($adresy as $lista_adresow) {
$data['wynik'] = $this->get_data($lista_adresow);
}
}
var_dump($data['wynik']);
$this->load->view('wynik', $data);
}
Get_data機能使用cURLのアドレス(IP、URLをリダイレクトする、HTTPコードITP)についての情報を取得します。例どのようにこの機能が働かなければならない:
$_POST['wartosc']='youtube.pl'=>index init get_data()=>cURL
リターンアドレスのIP、HTTP、コード、およびアドレスはREDIRECT_URLを持っている場合、私はredirect_url==NULL
と復帰するまで(それは再帰関数でなければならない)、再び機能get_data()
を思い出す必要があるので、ここでREDIRECT_URLとは私の問題ですすべてipとhttpコードでインデックス機能にリダイレクトし、$data['wynik']
に割り当てますが、データの一部しか取得しません。
は、データ機能を取得します。
function get_data($adres)
{
$url = $adres;
$c = curl_init();
$opcje = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => TRUE
);
curl_setopt_array($c, $opcje);
curl_exec($c);
$info = curl_getinfo($c);
if (curl_errno($c)) {
echo 'Błąd #' . curl_errno($c) . ': ' . curl_error($c) . "<br>";
};
$tablica = array() + $info;
if ($tablica['redirect_url'] != NULL) {
$this->get_data($tablica['redirect_url']);
}
return $tablica;
}
私は間違って何をしているのですか?
おかげ
"私はデータの一部分しか取得しません"。どの部分?何が不足していますか、あなたは何を期待していますか? – ADyson
私は再帰が動作しないと思う、get_dataはリダイレクトアドレスのリコール機能なしの最初のアドレスの情報のみを返す – Marcin
多分あなたはデバッグし、$ tablica ['redirect_url']が実際にどのようなものかを見て、それがあなたのNULLテストまたは関数が再帰時に使用できる有効なURLが含まれているかどうかを確認します。または単にメソッドを呼び出した回数がわかるようにカウンタを追加するだけです。 – ADyson