在PHP中将文件行分配给数组,然后在JavaScript数组中访问它


assigning the lines of files to the array in php then access it in javascript array

这就是我想要实现的目标,

使用 PHP 读取文本文件并将其中的每一行分配给数组值并打印它们,

<?php
$file = fopen("news.txt", "r");
$news = array();
$count = 0;
while (!feof($file)) {
    $count = $count + 1 ;
   $news[] = fgets($file);
}
fclose($file);
for ($x=1; $x<$count; $x++){
            echo $news[$x];
}
?>

代码工作正常,但现在我想在 javascript 中创建一个数组,正好等于使用 php ($count 读取的行数的大小,这是我的代码,

var content=new Array()
    for (var i=0;i<<?php echo $count ?>;i++)

这个javascript循环将迭代与文本文件中的行数相等的时间。由于从代码中可以清楚地看出,每行文本都存储在一个变量$news中,

如何将变量$news中的每一行文本分配给 javascript 内部的数组?

应该是这样的,

 var content=new Array()
    for (var i=0;i<<?php echo $count ?>;i++){
           content[i] = ***$news[i]***

如何将 PHP 变量中的每一行文本分配给数组内容 [] 的每个变量?

您可以简化用于将文件转换为数组的代码:

$news = file($file);

至于将其传输到JS,您可以使用json。

var content = <?php echo json_encode($news);?>;

请记住检查调用file的结果,以防文件不存在或无法访问。

这是一种错误的方法。将数组编码为 JSON 字符串并传递它,如下所示:

var jsonString = <?php echo json_encode($news); ?>;

然后,您可以根据需要以任何方式操作 JSON 对象。

例如,要打印所有内容:

var json = <?php echo json_encode($news); ?>;
for(var i=0; i < json.length; i++){
    console.log(json[i]);
}

只需在 PHP 中迭代数组并在 JS 中构建数组,而不是使用 echo 打印。

var content=new Array()
<?php for($i=0;$i < $count;$i++) { ?>
    content[<?php echo $i; ?>] = '<?php echo $news[$i]; ?>';
<?php } ?>

如果您愿意,还可以将数组转换为JSON并在JS中使用它。

var content=<?php json_encode($news); ?>;

编辑,完成代码

尝试使用这个:

var content=new Array();
<?php
$file = fopen("news.txt", "r");
$news = array();
while (!feof($file)) {
    echo "content.push('".fgets($file)."')";
}
fclose($file);
?>

现在JS变量内容应该是你要找的数组。