【问题标题】:how to loop data from txt database?如何从txt数据库循环数据?
【发布时间】:2020-12-25 02:06:57
【问题描述】:

我正在使用 txt 数据库,这里是我的代码:

    <div class="somdtnecmtx">ikuti kami di&nbsp;
        <?php
  $txt_file    = file_get_contents('dbmenuecom.txt');
  $rows        = explode("\n", $txt_file);
  array_shift($rows);
$i=1;
  foreach($rows as $row => $data)
  {
 
    $row_data = explode('|', $data);   
    $somedid = $row_data[0];
    $somedtb = $row_data[1];
    $somedps = $row_data[2];
    $somedjd = $row_data[3];
    $somedlk = $row_data[4];
    $somedic = $row_data[5];
    $somedcl = $row_data[6];
    $somedac = $row_data[7];
  echo '<a href="'. $somedlk .'" title="'. $somedjd .'"><i class="'. $somedic .'" style="'. $somedcl .'"></i></a>'; }?> 
    </div>

但我在结果中收到此错误:

ikuti kami di fb ig tw 注意:未定义的偏移量:1 in D:\XAMPP\htdocs\mediaol\draftweb.prefix\halecom.php 在第 76 行

注意:未定义的偏移量:2 英寸 D:\XAMPP\htdocs\mediaol\draftweb.prefix\halecom.php 在第 77 行

注意:未定义的偏移量:3 英寸 D:\XAMPP\htdocs\mediaol\draftweb.prefix\halecom.php 在第 78 行

注意:未定义的偏移量:4 英寸 D:\XAMPP\htdocs\mediaol\draftweb.prefix\halecom.php 在第 79 行

注意:未定义的偏移量:5 英寸 D:\XAMPP\htdocs\mediaol\draftweb.prefix\halecom.php 在第 80 行

注意:未定义的偏移量:6 英寸 D:\XAMPP\htdocs\mediaol\draftweb.prefix\halecom.php 在第 81 行

注意:未定义的偏移量:7 英寸 D:\XAMPP\htdocs\mediaol\draftweb.prefix\halecom.php 在第 82 行

我的代码哪里出错了?

【问题讨论】:

  • 请提供dbmenuecom.txt行样本
  • ID|TABEL|POS|JUDUL|LINK|ICON|CLASS|AKTIVASI 001|menusos|001|facebook|#|fa fa-facebook-square|font-size:20px;padding-right: 10px;|1 002|menusos|002|instagram|#|fa fa-instagram|font-size:20px;padding-right:10px;|1 003|menusos|003|twitter|#|fa fa-twitter-square|字体大小:20px;padding-right:10px;|1

标签: php database


【解决方案1】:

当您拥有格式良好的数据时,您的代码可以工作:example here 但如果数据与所需格式不匹配,您的代码将失败。 所以你需要在你的代码中添加简单的检查器:

foreach($rows as $row => $data) {
    $row_data = explode('|', $data);   
    $somedid = isset($row_data[0]) ? $row_data[0] : '';
    $somedtb = isset($row_data[1]) ? $row_data[1] : '';
    $somedps = isset($row_data[2]) ? $row_data[2] : '';
    $somedjd = isset($row_data[3]) ? $row_data[3] : '';
    $somedlk = isset($row_data[4]) ? $row_data[4] : '';
    $somedic = isset($row_data[5]) ? $row_data[5] : '';
    $somedcl = isset($row_data[6]) ? $row_data[6] : '';
    $somedac = isset($row_data[7]) ? $row_data[7] : '';
    echo '<a href="'. $somedlk .'" title="'. $somedjd .'"><i class="'. $somedic .'" style="'. $somedcl .'"></i></a>'; 
}

或其他检查器:

foreach($rows as $row => $data) {
    $row_data = explode('|', $data); 
    if (is_array($row_data) && count($row_data) == 8) {
        $somedid = $row_data[0];
        $somedtb = $row_data[1];
        $somedps = $row_data[2];
        $somedjd = $row_data[3];
        $somedlk = $row_data[4];
        $somedic = $row_data[5];
        $somedcl = $row_data[6];
        $somedac = $row_data[7];
        echo '<a href="'. $somedlk .'" title="'. $somedjd .'"><i class="'. $somedic .'" style="'. $somedcl .'"></i></a>'; 
    } else {
        echo "wrong row format";
    }

}

Live PHPize.online code here

【讨论】:

  • 试试第二个变种,看起来更好
【解决方案2】:

请确保txt文件的名称不包含空格。如:new file.txt,将单词与下划线(new_file.txt)结合起来,然后运行循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 2023-03-29
    • 2020-05-13
    相关资源
    最近更新 更多