0

这是我想要实现的目标,

使用 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 变量中的每一行文本分配给数组 content[] 的每个变量?

4

3 回答 3

2

这是错误的做法。将您的数组编码为 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]);
}
于 2013-09-25T14:37:40.330 回答
2

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

$news = file($file);

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

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

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

于 2013-09-25T14:38:10.623 回答
1

只需在 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 变量内容应该是您要查找的数组。

于 2013-09-25T14:42:26.077 回答