【问题标题】:Change php file after execution执行后更改php文件
【发布时间】:2018-04-12 09:52:03
【问题描述】:

我创建了获取数据并将其写入 XML 文件的 php 脚本。该任务是通过在 php 中使用 for 循环来执行的。对于今天的执行,它将从 1 运行到 10。 但是当我再次执行脚本时,我希望它在 for 循环中从 11 继续到 20。但正如我在 php 文件中写的 1 到 10 一样,它每次都会执行相同的操作。 这些值从服务器获取正确的值是它们在每次脚本执行时更新值的任何方式。 示例代码:

    for ($i=1; $i<2; $i++)
{
    //$url = $link3;
    $url = $link1 . $i . $link2;
    // Set the url
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLINFO_HEADER_OUT, true);

    $file=curl_exec($ch);


    $fileName = "data.xml";
if ( file_exists($fileName))    {
    $xml = simplexml_load_file($fileName);
}
else    {
    $xml= new SimpleXMLElement('<results />');
}
$array = json_decode ($file, true);
// Remove _class element
foreach ( $array['results'] as $key=>$result )   {
    unset($array['results'][$key]['_class']);
}
arrayToXml($array['results'], $xml);
$xml->asXML($fileName);

}

根据 i API URL 的值确定,我还从 API 引用页面,我一次最多可以获取 10 个页面。所以我必须在几天后执行这个脚本。

【问题讨论】:

  • 不要试图改变文件,只是想一个指向最后一条记录的指针。也许另一个sql表?本地文件,脚本可以读取的任何内容.. XY 问题?
  • 你试过for ($i=$start; $i &lt; $start + 10; $i++) {actions} 吗?
  • @AgniusVasiliauskas 我同意,但是考虑到 question 如果脚本完成执行,$start 引用将丢失。
  • 这不是一个大问题 - 他可以将最后一个 val 保存到数据库中
  • 如果你添加到一个 XML 文件,你能展示这个文件是如何构建的吗?

标签: php mysql wordpress


【解决方案1】:

您可以尝试使用sessions。将其放在代码的开头:

session_start();
if (!isset($_SESSION['start']) {
   $start = $_SESSION['start'] = 1;
}
else {
   $start = $_SESSION['start'] += 10;
}
session_write_close();

第一次运行代码时,$_SESSION['start'] 不会被设置,因此 $start 将为 1。在后续运行中,$start 将来自 $_SESSION['start'],并且每次都会增加 10。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 2018-02-26
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 2011-02-06
    相关资源
    最近更新 更多