我是一名学生,目前正在学习PHP,很难让explode()函数按我想要的方式工作。
以下文本文件"假期.txt"包含:
"54321", "Big Island Hawaii", "2999.00", "Best beaches big volcano"
"87654", "Cruise Caribbean", "3500.00", "Ocean view with balcony Cancun Jamaica etc."
"09876", "Rome and Madrid", "3999.00", "I see Italy I see Spain"
"32198", "Ski Tahoe", "1200.00", "Ski all day Gamble all night"
我试图将其放入一个由逗号分隔的数组中。使用print_r(),我可以看到它都进入了数组的第一个索引。这是我的代码:
function displaySpecials() {
$prodString = include("vacation.txt");
$vacArray = explode(',', $prodString );
print_r($vacArray);
}
这是输出:
"54321","夏威夷大岛","2999.00","最佳海滩大火山"87654","Cruise Caribbean","3500.00","海景带阳台"坎昆牙买加等"09876","罗马和马德里","3999.00","我明白了意大利我看到西班牙"32198","滑雪太浩","1200.00","全天滑雪"通宵赌博"阵列([0]=>1)
我已经搜索并阅读了我能找到的关于explode()的所有内容,但我不明白为什么会发生这种情况。我的最终目标是在一个有4行4列的表中输出一个多维数组,以显示文本文件中的16个值。
我们非常感谢所有的帮助。提前谢谢!
include语句包括并计算指定的文件。
include将评估其中的内容,基本上包括其他php脚本。
你需要获取它的内容。
下面我已经使用文件来获取文件线宽的内容。
function displaySpecials() {
$lines = file("vacation.txt"); // will return lines in array
foreach($lines as $line){ // loop for each line
$vacArray[] = explode(",", $line); // insert resulting array to last index of $varArray
}
print_r($vacArray);
return $vacArray;
}
此外,该文件显示为常规.csv
,您可以使用fgetcsv
。查看官方文档中的示例。
由于这基本上是一个csv
文件,我建议使用fgetcsv,类似于以下内容:
if (($h = fopen('vacation.txt', 'r')) !== false) {
while (($data = fgetcsv($h, 1000, ',')) !== false) {
// Fetch the data here
}
}
也可以选择使用str_getcsv:
$data = array_map('str_getcsv', file('vacation.txt'));
尝试用file_get_contents("vacation.txt")
替换include("vacation.txt")
。
包括
include语句包括并计算指定的文件。
文件集内容
将整个文件读取到字符串中
你的代码应该是这样的:
function displaySpecials() {
$prodString = file_get_contents("vacation.txt");
$vacArray = explode(',', $prodString );
print_r($vacArray);
}