Парсинг данных из exel с помощью PHP

#php #csv #xlsx

#php #csv #xlsx

Вопрос:

Я пытаюсь создать простую функцию для получения данных из файла Excel (csv и xlsx) это структура документов

  • Дата
  • Название
  • URL

После получения данных из файлов функция получит содержимое столбца url и получит его html-содержимое с помощью file_get_content()

Проблема в том, что функция поддерживает только файлы csv и file_get_content() получает только содержимое URL-адреса, заканчивающегося именем файлов :

Пример www.aaa.com/index.php

Для этого URL www.aaa.com/index это делает ошибку :

Это код моей функции :

 function getFileFromUrlExel($file){
    $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
    if( $ext == "csv" || $ext == "xslx"  ){
        $fp = fopen($file, "r");
        $columnnames = fgetcsv($fp, 1024);
        while (true == ($columns = fgetcsv($fp))) {
            $row = array_combine($columnnames, $columns);
            if($row["URL"] != ""){ $content = file_get_contents($row["URL"]); }else{ $content = "no_content"; }
            if($row["title"] != ""){ $name = $row["title"]; }else{ $name= "no_name"; }
            file_put_contents("files/".$row["title"].".html", $content);
        }
    }
}
  

Комментарии:

1. Боковая панель: Если это не личный проект, который вы делаете в образовательных целях, существует множество хороших проектов, которые помогут вам читать документы csv или xls на PHP. Один пример: github.com/PHPOffice/PHPExcel

2. О, если вы можете позволить себе немного дополнительных затрат, пожалуйста, изучите PHPExcel ( phpexcel.codeplex.com ) … Я уверен, что есть дела поважнее, чем изобретать это колесо! 🙂

3. я стараюсь упростить его, не используя внешний класс с php

4. xslx или xlsx? Независимо от того, насколько я знаю, ни один из них не является csv, поэтому вы не сможете его прочитать fgetcsv . Кроме того, Excel «csv» несовместим в разных версиях в отношении кодирования и, возможно, также правил кавычек / разделителей, что затрудняет «простое» его чтение. Поэтому, если вы хотите упростить его, сократите его до csv и подготовьтесь к тому, что он может быть поврежден файлами «csv» из разных версий Excel или использовать существующую библиотеку. Для другой проблемы я бы предположил, что правильный URI должен быть http://www.aaa.com/index.php . В противном случае вы можете попытаться прочитать index.php в локальном каталоге www.aaa.com