Komut neden çıktıya iki çeşit veriyor GET?

3 Cevap php

i istemi kabuğu üzerinde aynı komutu yazmak bir page.When içeriğini almak için GET komutu kullanarak iam doğru sonucu verir ama PHP dosyası sonra bazen onun doğru sonuç veren ama bazen içerik, yani sonunda sadece yarısını verdiğini kullandığınızda -Yarım porsiyon sadece.

Iam kabuk komutu aşağıdaki kullanarak: -

GET http://www.abc.com/ -H "Referer:http://www.abcd.com/"

ve PHP dosyası aşağıdaki gibidir: -

$data=exec('GET http://www.abc.com/ -H "Referer:http://www.abcd.com/"');
echo $data;

Im php dosyasında kullanırken bu komut sayfanın tüm içeriğini vererek değil neden şimdi söyle lütfen.

3 Cevap

exec sadece komut çıkışından son satırı döndürür. Tam çıkış dönmek için referans tarafından ikinci argüman iletirsiniz:

exec('GET http://www.abc.com/-H "Referer: http://www.abcd.com/" '& $ data);

$data çıktı hat başına bir eleman içeren bir dizi olacak

Daha kolay olabilir:

$data = `GET http://www.abc.com/ -H "Referer:http://www.abcd.com/"`;
echo $data;

Shell_exec fonksiyonunu (yani ters tırnak `gerçekten budur) varsayarak devre dışı değildir.

Saf php ile bir alternatif:


$opts = array(
    'http'=>array(
        'method'=>"GET",
        'header'=>"Referer: http://www.abc.com/\r\n"
  )
);
$context = stream_context_create($opts);
$file = file_get_contents('http://www.abc.com/', false, $context);