Autor Zpráva
Darker
Profil
Jak mám zabránit tomu, aby mi CURL vypsala data na výstup, lkdyž je chci načíst?
Jostram
Profil *
Nevím jak ostatní, ale já začal do kurzu "Věštíme z křišťálové koule - začátečníci" chodit teprve nedávno a tak nejsem schopen posoudit váš kód a tím pádem vám účině pomoci. Pro začátek můžete zkusti tuto stránku obsahující příklady použití cURL.

Data do proměnné se načítají například takto (zdroj):
<?php 
// create curl resource 
$ch = curl_init(); 

// set url 
curl_setopt($ch, CURLOPT_URL, "example.com"); 

//return the transfer as a string 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

// $output contains the output string 
$output = curl_exec($ch); 

// close curl resource to free up system resources 
curl_close($ch);      
?>
Darker
Profil
Skoušel jsi to? Ne? Já jo. Kdybych to nezkoušel není tu tento post.
Keeehi
Profil
Darker:
Ukázal jsi svůj problémový kód? Ne! Kdyby jsi ho tu ukázal, tak tu není tenhle příspěvek ale rada.

Jinak 9. řádek z [#2] by měl být dostatečný k řešení tvého problému.
Jostram
Profil *
Darker:
cURL používám běžně a problémy s tím nemám.

To, že vy nejste schopný dodat svůj kód, abych vám zkusil pomoci je vaše chyba.

Místo blbých keců si laskavě projděte manuál funkce.
Darker
Profil
Můj problémovýkód je [#2]. Možná jsem nedostatečně upřesnil problém.
Když použiju cURL tak, jak to tu vidíte, to co vzdálený server poslal se, včetně hlavičky, přepošle uživateli.
Jostram
Profil *
Kód v mém postu funguje tak jak má. Načte stránku example.com a uloží do proměnné $output. Nic se nikam nevypisuje.


Ukázka:
<?php
echo 'start   ';
// create curl resource 
$ch = curl_init(); 

// set url 
curl_setopt($ch, CURLOPT_URL, "example.com"); 

//return the transfer as a string 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

// $output contains the output string 
$output = curl_exec($ch); 

// close curl resource to free up system resources 
curl_close($ch);
echo 'stop';
?>

Vypíše toto :
start   stop

------------------
(program exited with code: 0)
Press return to continue


Oproti tomu tento kód:
<?php
echo 'start   ';
// create curl resource 
$ch = curl_init(); 

// set url 
curl_setopt($ch, CURLOPT_URL, "example.com"); 

//return the transfer as a string              ##  ZAKOMENTOVÁNO OPROTI PRVNÍMU PŘÍKLADU  ##
#curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  ##  ZAKOMENTOVÁNO OPROTI PRVNÍMU PŘÍKLADU  ##

// $output contains the output string 
$output = curl_exec($ch); 

// close curl resource to free up system resources 
curl_close($ch);
echo 'stop';
?>

vypíše toto (zkráceno):
start   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
  <META http-equiv="Content-Type" content="text/html; charset=utf-8">
  <TITLE>Example Web Page</TITLE>
</HEAD> 
</HTML>

stop

------------------
(program exited with code: 0)
Press return to continue



Verze PHP a Apache na mém serveru je následující:
$ php --version
PHP 5.2.14-pl0-gentoo with Suhosin-Patch 0.9.7 (cli) (built: Sep 27 2010 22:35:34) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
    with Xdebug v2.0.5, Copyright (c) 2002-2008, by Derick Rethans
    with Suhosin v0.9.31, Copyright (c) 2007-2010, by SektionEins GmbH
    
Apache: 2.2.16 (built: 16:05:11 26.9.2010)
Pokud byste chtěl, poskytnu vám i detailní nastavení při kompilaci.


Zkuste si schválně udělat skript třeba curl_test.php a dát do něj kód z mého prvního postu a nic víc a spusťte ho. Pak zkuste zakomentovat 9. řádek z mého prvního postu a zkuste to spustit znovu. V případě, že se takto nově vytvořený skript nebude chovat tak, jak má (první nic nevypíše, druhý vypíše response), dejte vědět (a přiložte i svůj kód). Pokud se to bude chovat korektně, tak hledejte ve svém kódu nějaké zapadlé echo, které by vypsalo proměnou $output, nebo chybku v nastavení CURL (překlep, cokoli...)
Darker
Profil
Ano, měl jsem tam opravdu chybku, omlouvám se. Už to funguje.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0