我试图将文本文件转换为字符串,然后转换为数组,然后最后将每个值(单词)打印成单独的'a'持有人。
.txt文件包含一行文本。
我已经通过for循环尝试过了,像这样:
$lines = file_get_contents('test.txt', FILE_USE_INCLUDE_PATH);
$words = explode(" ", $lines);
for ($x = 1; $x >= 100; $x++){
print '<a id="word$x">'$words[$x]'</a>';
}
但这不起作用。我确信我只是缺少了一些基本的东西,但是我已经尝试了很多次,都失败了,所以我需要别人的意见和建议。
首先,不要忘记字符串连接:print '<a id="word'.$x.'">'.$words[$x].'</a>';
如果你需要更多的字,使用$x < count($words)
在你的for
你必须用<=代替>=
for ($x = 1; $x <= 100; $x++){
print '<a id="word$x">'$words[$x]'</a>';
}
您可以使用spring,它更容易阅读。
$lines = file_get_contents('test.txt', FILE_USE_INCLUDE_PATH);
$words = explode(" ", $lines);
for ($x = 1; $x >= 100; $x++){
echo sprintf('<a id="word%s">%s</a>', $word, $words[$x]);
}
但是如果你不愿意,你可以简单地将这些值连接起来。
echo '<a id="word' . $x . '">' . $words[$x] . '</a>';
使用显式for
循环是一种不好的做法。
$lines = file_get_contents('test.txt', FILE_USE_INCLUDE_PATH);
$words = explode(" ", $lines);
$words = array_slice($words, 0, 100);
foreach ($words as $index => $word) {
print "<a id="word$x">$word</a>";
}
另外,要注意数组索引从0
开始,而不是1
。如果你做$x = 1
,你最终会丢失第一个单词!
如果要打印所有单词,只需去掉$words = array_slice($words, 0, 100);
。点击这里了解更多关于array_slice
的信息