0

你好 :) 如果这真的很愚蠢,我提前道歉,但我已经尝试了一个星期,现在我要爆炸了:D

我在一个文本文件中有一个包含 200 个 ID 号的列表,每个都用换行符分隔。我想使用 PHP 将每一行逐一用作 POST 请求中的变量。通过指定要从文件中包含的字符数,我可以使用此代码发送第一行:

    $IDfile = "file.txt";
    $fh = fopen($IDfile, 'r');
    $ID = fread($fh, 18);
    fclose($fh);

然后我可以在 POST 中使用 $ID 变量。但这仅适用于第一行,因为该行有 18 个字符,但还有 199 行。

我还可以使用 foreach 打印文件中的所有行,但这对 POST 请求没有帮助:

    $IDfile = "file.txt";
    $lines = file($IDfile);
    foreach($lines as $line_num => $line)
    {
    echo $line;
    echo "<br>";
    }

因此,这是我的 POST 请求的完整脚本,用于向 Twitter API 1.1 发送“销毁推文”命令 - $ID 变量是我要使用文本文件中的每一行顺序替换的变量:

    require_once('TwitterAPIExchange.php');
    include('apikeys.php');

    $url = "https://api.twitter.com/1.1/statuses/destroy/" .$ID . ".json";
    $requestMethod = 'POST';

    $postfields = array(
    );

    $twitter = new TwitterAPIExchange($settings);
    $twitter->buildOauth($url, $requestMethod)
    ->setPostfields($postfields)
    ->performRequest();

那么我该怎么做呢?如何从文本文件中按顺序获取每一行,然后在 POST 请求中使用单行值作为变量,直到每行都被读取?

这可能超出了我的水平,哈哈,但我决心学习这一点,任何帮助或指导都会非常感激:)

4

3 回答 3

1

试试这个,如果我是对的,你必须包含该id字段

<?php
  require_once( "TwitterAPIExchange.php" );
  include( "apikeys.php" );

  $url    = "https://api.twitter.com/1.1/statuses/destroy/%s.json";
  $lines  = file( "file.txt" );
  $post   = array(
    "id"  =>  null
  );

  foreach( $lines as $line ) {
    $line = trim( $line );
    $post["id"] = $line;

    $twitter  = new TwitterAPIExchange( $settings );
    $response = $twitter->buildOauth( sprintf( $url, $line ), "POST" )
                        ->setPostfields( $post )
                        ->performRequest();

    $response = json_decode( $response );
    if ( !$response ) {
      echo "Empty response";
      break;
    }

    var_dump( $response );
  }
?>
于 2013-08-16T02:37:00.070 回答
0

用于fopen读取文件,然后在循环内您可以创建 URL 并发送 POST 请求,如下所示:

$f = fopen("file.txt", "r");

while(!feof($f)) { 

    $url = "https://api.twitter.com/1.1/statuses/destroy/" . trim($f) . ".json";
    $requestMethod = 'POST';

    $postfields = array(
    );

    $twitter = new TwitterAPIExchange($settings);
    $twitter->buildOauth($url, $requestMethod)
    ->setPostfields($postfields)
    ->performRequest();
}
于 2013-08-16T01:53:21.113 回答
0

这些方面的东西应该可以帮助您解决该问题

  $IDfile = "file.txt";
    $lines = file($IDfile);
    foreach($lines as $line_num => $line)
    {
    echo sending request for $line;

    $url = "https://api.twitter.com/1.1/statuses/destroy/" .$line . ".json";
    $requestMethod = 'POST';

    $postfields = array(
    );

    $twitter = new TwitterAPIExchange($settings);
    $twitter->buildOauth($url, $requestMethod)
    ->setPostfields($postfields)
    ->performRequest();
    }
于 2013-08-16T01:53:43.757 回答