PHP cURL脚本在文件名末尾添加“空格”

我通过AJAX调用PHP脚本,在本地保存远程图像(通过Mapbox API)。 一切都很好,除了 result </ code>在字符串的末尾包含一个'space'( filename.jpg [space] </ code>)。</ p>

Javascript:</ p>

  var mapboxUrl ='https://api.mapbox.com/v4/motioncrafter.96d11990/'+ longitude +','+ latitude +'  ,11 / 1280x720 @ 2x.jpg80?access_token = pk.eyJ1IjoibW90aW9uY3JhZnRlciIsImEiOiJjaWg2dHJvM2YwNndudjJrdGI2amUzdnlyIn0.oN201-rjUC4DHhz7QhGJRA'; 
$ .ajax({
type:“POST”,
url:“../../php / map。 php“,
data:{
map:mapboxUrl,
},
success:function(result){
$('。video_map')。val(result);
}
});

</ code> </ pre>

PHP:</ p>

 &lt;?php 
$ mapboxUrl = $ POST [“map”];

$ path =“../images/user-maps/";
$imageFile = $ path。 “map_wide
”。 兰特(10000,99999)。 时间() 。 “.jpg”;
$ ch = curl_init($ mapboxUrl);
$ fp = fopen($ imageFile,'wb');
curl_setopt($ ch,CURLOPT_FILE,$ fp);
curl_setopt($ ch,CURLOPT_HEADER ,0);
curl_exec($ ch);
curl_close($ ch);
nclclose($ fp);

echo $ imageFile;
?&gt;

</ code> </ pre>

知道这个空间出现的原因吗?</ p>
</ div>

展开原文

原文

I'm calling a PHP script via AJAX that saves a remote image locally (via Mapbox API). Everything works great, except for the result includes a 'space' (filename.jpg[space]) at the end of the string.

Javascript:

var mapboxUrl = 'https://api.mapbox.com/v4/motioncrafter.96d11990/' + longitude + ',' + latitude + ',11/1280x720@2x.jpg80?access_token=pk.eyJ1IjoibW90aW9uY3JhZnRlciIsImEiOiJjaWg2dHJvM2YwNndudjJrdGI2amUzdnlyIn0.oN201-rjUC4DHhz7QhGJRA';
      $.ajax({
        type: "POST",
        url: "../../php/map.php",
        data: {
          map: mapboxUrl,
            },
        success: function(result) {
          $('.video_map').val(result);
        }
      });

PHP:

<?php
$mapboxUrl = $_POST["map"];
$path = "../images/user-maps/";
$imageFile = $path . "map_wide_" . rand(10000, 99999) . time() . ".jpg";
$ch = curl_init($mapboxUrl);
$fp = fopen($imageFile, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);

echo $imageFile;
?> 

Any idea why this space is showing up?

doudongfu8006
doudongfu8006 我的猜测是后面还有一个空格?>。之后的所有内容都会响应客户端。
4 年多之前 回复
dongtang1909
dongtang1909 你确定有空间吗?您的代码似乎不会在那里添加空格。在成功调用console.log(result.match(/\s$/));中添加它。你在控制台弄错了吗?
4 年多之前 回复
dthy81285
dthy81285 我不知道为什么它会增加一个空间,但你总是可以修剪()它
4 年多之前 回复

1个回答



摆脱这一行:</ p>

 ?&gt; 
</ code > </ pre>

我怀疑你之后有空间。 &lt;?php ...?&gt; </ code>之外的所有内容都会被发送到客户端,因此,如果它实际上是?&gt;&lt; space&gt; </ code>,则该空间将被附加到 图像文件名。</ p>

在脚本末尾不需要?&gt; </ code>,文件末尾会自动告诉PHP停止处理代码 。</ p>
</ div>

展开原文

原文

Get rid of this line:

?>

I suspect you have a space after that. Everything outside <?php ... ?> gets sent to the client, so if it's actually ?><space>, the space will be appended to the image filename.

There's no need to have ?> at the end of a script, the end of the file automatically tells PHP to stop processing the code.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐