doulouli8686 2018-09-04 07:32
浏览 97
已采纳

perl中的“<<”,“ - ”和php中的实现是什么意思?

I am converting some Perl code to PHP.
However, I do not know much about Perl, so I have to code it with a rough meaning.

And, I do not understand what the below Perl code means...

What is the meaning of $req2->content(<<"POST_DATA") and --$boundary?
I've searched the Perl documentation, but it's too hard to find.

PHP code:

...
$boundary= 'Nobody-has-the-intention-to-erect-a-wall'; 

$req2 = curl_init($search_url); 
curl_setopt($req2, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($req2, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($req2, CURLOPT_POSTFIELDS, $data_string); 
curl_setopt($req2, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($req2, CURLOPT_COOKIE, $cookie); 
curl_setopt($req2, CURLOPT_HTTPHEADER, array( 
'Content-Type: multipart/form-data;boundary='.$boundary, 
'Content-Length: ' . strlen($data_string)) 
); 
$result= curl_exec($req2); 
...

Perl code:

...
my $boundary= 'Nobody-has-the-intention-to-erect-a-wall';
$req2->content_type('multipart/form-data;boundary='.$boundary);
$req2->header("Cookie"=>"access_token_cookie=$access_token_cookie; csrf_access_token=$csrf_access_token");

$req2->content(<<"POST_DATA"); #what means this?

--$boundary
Content-Disposition: form-data; name="num_result"
Content-Type: text/plain

$num_result
--$boundary
Content-Disposition: form-data; name="img"; filename="search.jpg"
Content-Type: image/jpeg

$image
--$boundary--
POST_DATA

my $res = $ua->request($req2);
...
  • 写回答

2条回答 默认 最新

  • dtlrp119999 2018-09-04 08:43
    关注

    Nothing very different from PHP actually.

    • << Heredoc, also present in PHP with slight differences:

      echo (<<<"POST_DATA"
      First line
      Second line
      POST_DATA
      );
      
    • -- Variable decrease, as in <?php $a=2; echo --$a;

    Note:

    Of course, inside a Heredoc -- is just text.


    Suggestion:

    If you don't fully understand the Perl, try to run it (it's not evil code).

    my $boundary = 'Nobody-has-the-intention-to-erect-a-wall';
    print(<<"POST_DATA");
    
    --$boundary
    Content-Disposition: form-data; name="num_result"
    Content-Type: text/plain
    
    $num_result
    --$boundary
    Content-Disposition: form-data; name="img"; filename="search.jpg"
    Content-Type: image/jpeg
    
    $image
    --$boundary--
    POST_DATA
    

    Will yield:

     
    --Nobody-has-the-intention-to-erect-a-wall
    Content-Disposition: form-data; name="num_result"
    Content-Type: text/plain
    
    
    --Nobody-has-the-intention-to-erect-a-wall
    Content-Disposition: form-data; name="img"; filename="search.jpg"
    Content-Type: image/jpeg
    
    
    --Nobody-has-the-intention-to-erect-a-wall--
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值