Как я могу открыть файл с именем переменной (массива) в php? - PullRequest
1 голос
/ 17 апреля 2020

Я попытался написать php скрипт для получения 1 основного файла с сервера и чтения этого файла, взрыва его (с символом ":") и сохранения его в массиве, затем я записываю эти переменные в массиве в текстовый файл каждый новый линия. Затем я могу прочитать этот файл построчно, но не могу открыть ни один файл с fopen($variable, 'r');. Моя переменная есть; $variable = $array[1]."txt";.

Мои коды;

<?php

$file = file("toplist.txt");

$countLine = count($file);
$userMain = array();
$userMain[0] = "Top List";
$userNames = array();
$userNames[0] = "SampleName";
for ($i=1;$i<$countLine;$i++){

    $user = explode (":",$file[$i],-1);
    $userMain[$i] = $user[0];
    echo $userMain[$i]."<br>"; //Test echo
}
$totalLn = count($userMain);
echo $totalLn;   //Echo total line.

$myFile = $userMain[1].".txt";


$fileAA = fopen($myFile,'r');

while($line = fgets($fileAA))
    $data[] = $line;

fclose($fileAA);

for ($counter = 0; $counter <= 5 ; $counter++ )
{
    echo "<i>".$data[$counter]."</i><br />";
}
?>

Мой файл toplist.txt;

toplist:
  54df3a11-3ea0-37c4-8ec4-0fdd45f2e069: 211

, и у меня есть файл с именем 54df3a11-3ea0-37c4-8ec4-0fdd45f2e069.txt.

И 54df3a11-3ea0-37c4-8ec4-0fdd45f2e069.txt содержимое файла;

name : SampleName123
destination : SampleDestination
SampleContent : SampleContent

Мне нужна строка имени и просто SampleName123.

Ответы [ 2 ]

1 голос
/ 17 апреля 2020
$contents = file_get_contents($array[1]."txt");
$rows = explode("\n",$contents);
$user = [];
foreach($rows as $row){
    $parts = explode(" : ",$row);
    $user[$parts[0]] = $parts[1];
}

После этого анализа вы можете получить доступ к пользователю как к массиву.

$user['name']

И вы также можете сделать листинг:

$file = file($user['name'].".txt"); //Reads entire file into an array
foreach($file as $row){
    echo "<i>".$row."</i><br />";
}

PS: это работает, но нужно использовать функцию trim () для взятых имен файлов из .txt файла

0 голосов
/ 17 апреля 2020

Если содержимое файла всегда одинаковое, возьмите первую строку и используйте substr($str, 0, 7); // Outputs: SampleName123

...