我有以下代码,它使用数组将结果写入文件。 我想创建另一个数组来从另一个文件中读取名人数组。
<?php
require("class.XMLHttpRequest.php");
function hot($news){
$url="https://localhost/search.aspx?search=".$news."";
$ajax=new XMLHttpRequest();
$ajax->setRequestHeader("Cookie","Cookie: host");
$ajax->open("GET",$url,true);
$ajax->send(null);
if($ajax->status==200){
$rHeader=$ajax->getResponseHeader("Set-Cookie");
if(substr_count($rHeader, "Present!")>0) { return true; }
}else{ return false; }
}
$celebrities = array('britney','gaga','carol');
$filename = 'result.txt';
$handle = fopen($filename, 'a');
foreach($celebrities as $celebrity)
{
if(hot($celebrity)) { fwrite($handle, "{$celebrity}\r\n"); };
}
fclose($handle);
?>
我还想从文件而不是
加载$celebrities
数组
$celebrities = array('britney','gaga','carol');
我无法让它发挥作用。我做错了什么?
<?php
$handle = @fopen('array.txt', "r");
if ($handle) {
while (!feof($handle)) {
$celebrities[] = fgets($handle, 4096);
}
fclose($handle);
}
?>
答案 0 :(得分:2)
$celebrities = file('array.txt'); // possibly add an array_filter()
// OR
$celebrities = explode('\r\n', file_get_contents('array.txt'));
答案 1 :(得分:1)
我发现您的代码没有任何问题。究竟什么不起作用?有错误信息吗?
为什么要将文件读入数组?我的建议是:
$read_file = fopen('array.txt', 'r');
$write_file = fopen('result.txt', 'a');
while(!feof($read_file))
{
$celebrity = trim(fgets($read_file));
if(hot($celebrity)) { fwrite($write_file, "{$celebrity}\r\n"); }
}
fclose($write_file);
fclose($read_file);
答案 2 :(得分:0)
由于您要通过换行符/回车符分隔每个数组条目,因此您应该逐行读取文件的内容并将每个数据分配给您的数组,这看起来就像您正在做的那样。也许在使用之前声明数组会有所帮助,即在循环之前$celebrities = array();
。否则,每次你的循环迭代时,看起来$名人都会被重新定义。
如果你提供更多关于什么不起作用的信息(解析错误?数组的内容?),那么我可以提供更详细的答案。
如果代码没有出错,请打印出数组print_r($celebrities);
的内容并向我们显示您的输出。
答案 3 :(得分:0)
你也可以在OSX linux和Windows中工作:
$content = file_get_contents($file_name);
$array = explode(PHP_EOL, file_get_contents('fileName.txt'));
PHP_EOL
返回当前操作系统的行尾。
答案 4 :(得分:0)
这是我将变量存储在文件中的方式:
<?php
return array(
'db' => array(
'host' => '127.0.0.1',
'port' => '3306',
'database' => 'someDatabase',
'username' => 'someUsername',
'password' => 'somePassword'
)
);
然后我使用以下命令将变量分配给$ MariaDB:
$MariaDB = include("read.php");
这是我访问变量的一个例子:
$dsh = "mysql:host=" . $MariaDB['db']['host'] . ";dbname=" . $MariaDB['db']['database'];
$dbh = new PDO($dsh, $MariaDB['db']['username'], $MariaDB['db']['password'] );