【问题标题】:curl and php problem -- blank pagecurl和php问题——空白页
【发布时间】:2010-10-02 16:30:55
【问题描述】:

我正在尝试将保存在 url 中的图像下载到本地文件夹,并使用 curl 进行了以下尝试。我想知道是否有必要包含 curl 或单独下载它,或者我的功能是否可以正常工作。我想知道我在下面的实现是否有任何明显的问题。我知道 sql 漏洞,我正在切换到准备好的语句。为简洁起见,我已经修剪了代码中不相关的部分。

编辑:函数不在 while 循环中。如果我注释掉该函数的调用,页面就会显示,否则我只会得到一个空白页面。这是为什么呢

<?php
header("Content-Type: text/html; charset=utf-8");
if (isset($_GET["cmd"]))

  $cmd = $_GET["cmd"];

else

  die("You should have a 'cmd' parameter in your URL");

 $pk = $_GET["pk"];

$con = mysql_connect("localhost","someuser","notreal");

if(!$con)

{

die('Connection failed because of' .mysql_error());

}
mysql_query('SET NAMES utf8'); 

mysql_select_db("somedb",$con);

if($cmd=="GetAuctionData")

{

$sql="SELECT * FROM AUCTIONS WHERE ARTICLE_NO ='$pk'";

$sql2="SELECT ARTICLE_DESC FROM AUCTIONS WHERE ARTICLE_NO ='$pk'";

$htmlset = mysql_query($sql2);

$row2 = mysql_fetch_array($htmlset);



$result = mysql_query($sql);

function savePicture($imageUrl) {
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_URL, $lastImg);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);
    $fileContents = curl_exec($ch);
    curl_close($ch);
    $newImg = imagecreatefromstring($fileContents);
    return imagejpeg($newImg, "./{$pk}.jpg",100);
}

while ($row = mysql_fetch_array($result))
{



$lastImg = $row['PIC_URL']; 


savePicture($lastImg);


<div id='rightlayer'>

<img src='./".$pk.".jpg' width='".$outputWidth."' height='".$outputHeight."'>


</div>

</div>

</div>";



}



}

mysql_free_result($result);

【问题讨论】:

  • savePhoto() 与 savePicture()?
  • 为什么不直接将 error_reporting 设置为 E_ALL(或更好:E_STRICT)并测试您的脚本?如果有任何错误,这将是最容易看到的。
  • 我将错误报告设置为 E_ALL,但是我无权访问日志文件,并且浏览器中没有显示任何内容。
  • 使用 ini_set 函数将 display_errors 设置为 true 以供运行时使用。
  • 我设法看到了错误日志,它声明了对函数 curl_init 的未定义调用。我必须以特殊方式包含 curl 吗?

标签: php curl


【解决方案1】:

如果在循环运行多次时在循环中声明函数,则会出现错误。所以你应该在while之外声明savePicture函数。

【讨论】:

    【解决方案2】:

    我会从 while 块中取出函数定义。

    在我看来,您使用 curl 是为了在这里使用 curl,更简单的方法是使用 file get contents

    【讨论】:

    • 我目前无权将 URL 作为文件访问,这不是文件获取内容所必需的吗?
    猜你喜欢
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 2022-08-18
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 2018-05-13
    相关资源
    最近更新 更多