2010-03-27 11 views

cevap

32

Bunun yerine file_get_contents'u kullanabilirsiniz. Onun çok daha kolay.

$url = 'http://www.google.com'; 
$outputfile = "dl.html"; 
$cmd = "wget -q \"$url\" -O $outputfile"; 
exec($cmd); 
echo file_get_contents($outputfile); 
+8

+1 Bu sistemde izin verilmeyen bir sistem komutunu çalıştırmaya çalışmak için mükemmel kabul edilebilir bir alternatif. ilk yer. – jasonbar

11

exec fonksiyon wget çalıştırmak için kullanılabilir: Eğer wget kullanmak zorunda ise

echo file_get_contents('http://www.google.com'); 

, gibi bir şey deneyebilirsiniz. Daha sonra basit dosya indirmeleri için daha önce hiç wget kullanmamıştım, ancak dosya içeriğini çıkarmasını sağlamak için wget'e verdiğiniz argümanları kullanırdınız. Exec ikinci parametre/argüman bir dizi olacaktır ve bu dizi wget çıkışı ile satır satır doldurulur. gibi

Yani bir şey olurdu:

<?php 

exec('wget http://google.com/index.html -whateverargumentisusedforoutput', $array); 

echo implode('<br />', $array); 

?> 

exec için manuel sayfa muhtemelen açıklıyor bu daha iyi: http://php.net/manual/en/function.exec.php

1

O

çalışır
<?php 

    system("wget -N -O - 'http://google.com") 

?> 
2

çoğunda denemeyin serversr, onlar wget gibi komutları çalıştırmaktan engellenmelidir! file_get_contents sadece yazı, resim değiştirebilir ve görüntüleri ve iç çerçeveleri vb .... kaldırmak için müvekkilim ve hızlı

<?php 

$content = file_get_contents('http://www.mysite.com'); 
$content = preg_replace("/Comic Sans MS/i", "Arial, Verdana ", $content); 
$content = preg_replace("/<img[^>]+\>/i", " ", $content); 
$content = preg_replace("/<iframe[^>]+\>/i", " ", $content); 
$echo $content; 

?> 

sonradan ile olmakta ısrar eden bok iframe yerini aldı ve sitem zamankinden daha iyi bakıyor! (Evet biliyorum kodun benim parlak değil ama benim için büyük bir gelişme ve can sıkıcı biçimlendirmeyi kaldırır!)

İlgili konular