PHP: CSV для массива

Использование timestamp ...

<?php
if (!isset($_SESSION)) {
    $session = session_start();
} 
if ($session && !isset($_SESSION['login_time'])) {
    if ($session == 1) {
        $_SESSION['login_time']=time();
        echo "Login :".$_SESSION['login_time'];
        echo "<br>";
        $_SESSION['idle_time']=$_SESSION['login_time']+20;
        echo "Session Idle :".$_SESSION['idle_time'];
        echo "<br>";
    } else{
        $_SESSION['login_time']="";
    }
} else {
    if (time()>$_SESSION['idle_time']){
        echo "Session Idle :".$_SESSION['idle_time'];
        echo "<br>";
        echo "Current :".time();
        echo "<br>";
        echo "Session Time Out";
        session_destroy();
        session_unset();
    } else {
        echo "Logged In<br>";
    }
}
?>

Я использовал 20 секунд для истечения сеанса с использованием метки времени.

Если вам нужно 30 минут добавить 1800 (30 минут в секундах) ...

-5
задан Gammer 18 March 2019 в 13:06
поделиться

2 ответа

Я надеюсь, что это поможет вам

public function importCsv()
{
    $file = public_path('upload/test.csv');

    $customerArr = $this->csvToArray($file);

    for ($i = 0; $i < count($customerArr); $i ++)
    {
    //   $customerArr[$i];
       //get data and insert or you ca use
    }

     print_r($customerArr);

}


function csvToArray($filename = '', $delimiter = ',')
{
    if (!file_exists($filename) || !is_readable($filename))
        return false;

    $header = null;
    $data = array();
    if (($handle = fopen($filename, 'r')) !== false)
    {
        while (($row = fgetcsv($handle, 1000, $delimiter)) !== false)
        {
            if (!$header)
                $header = $row;
            else
                $data[] = array_combine($header, $row);
        }
        fclose($handle);
    }

    return $data;
}
.
0
ответ дан Future Coder 18 March 2019 в 13:06
поделиться
<?php
$csv = array_map('str_getcsv', file('filename.csv'));

for ($j = 1; $j < count($csv); $j++) {
    for ($i = 0; $i < count($csv[0]); $i++) {
        $myArray[$csv[0][$i].$j] = $csv[$j][$i];
    }
}

print_r($myArray);

Не самое элегантное решение, но оно подойдет вам. Я использовал петли for, чтобы мне было проще использовать их счетчики. Выходной результат:

Array
(
    [firstName1] => test1
    [lastName1] => Test1
    [email1] => test1@gmail.com
    [firstName2] => test2
    [lastName2] => Test2
    [email2] => test2@gmail.com
)

И мой CSV-файл выглядел так:

firstName,lastName,email
test1,Test1,test1@gmail.com
test2,Test2,test2@gmail.com

Первый цикл запускает счетчик с позиции 1, поэтому я избегаю заголовков и буду зацикливаться основной массив CSV.

Вложенный цикл будет проходить через каждый из вложенных массивов и на основе 1-го, который содержит информацию заголовка, объединит новые ключевые поля и создаст ваш новый массив.

Если вы хотите, чтобы оно было в точности , как в вашем примере, с квадратными скобками и счетчиком, начинающимся с 0 для ключевого поля, то вы можете просто: выведет для вас массив, как вы и просили в своем вопросе:

Array
(
    [firstName[0]] => test1
    [lastName[0]] => Test1
    [email[0]] => test1@gmail.com
    [firstName[1]] => test2
    [lastName[1]] => Test2
    [email[1]] => test2@gmail.com
)
0
ответ дан pr1nc3 18 March 2019 в 13:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: