如何将此 php 数组文件解析为 Access?

Posted

技术标签:

【中文标题】如何将此 php 数组文件解析为 Access?【英文标题】:How do I parse this php array file into Access? 【发布时间】:2011-08-08 21:53:27 【问题描述】:

这是 mysql 导出函数的输出。问题是我不知道将其放入 Access 的最佳方法。从那里我可以编写 php 来解析它。

<?php
/**
 * Export to PHP Array plugin for PHPMyAdmin
 * @author Geoffray Warnants
 * @version 0.2b
 */

//
// Database "nhbdir_newdb3"
//

// nhbdir_newdb3.jos_banner
$jos_banner = array(
  array('bid'=>1,'cid'=>1,'type'=>'banner','name'=>'OSM 1','alias'=>'osm-1','imptotal'=>0,'impmade'=>44,'clicks'=>0,'imageurl'=>'osmbanner1.png','clickurl'=>'http://www.opensourcematters.org','date'=>'2004-07-07 15:31:29','showBanner'=>1,'checked_out'=>0,'checked_out_time'=>'0000-00-00 00:00:00','editor'=>'','custombannercode'=>'','catid'=>13,'description'=>'','sticky'=>0,'ordering'=>1,'publish_up'=>'0000-00-00 00:00:00','publish_down'=>'0000-00-00 00:00:00','tags'=>'','params'=>''),
  array('bid'=>2,'cid'=>1,'type'=>'banner','name'=>'OSM 2','alias'=>'osm-2','imptotal'=>0,'impmade'=>50,'clicks'=>0,'imageurl'=>'osmbanner2.png','clickurl'=>'http://www.opensourcematters.org','date'=>'2004-07-07 15:31:29','showBanner'=>1,'checked_out'=>0,'checked_out_time'=>'0000-00-00 00:00:00','editor'=>'','custombannercode'=>'','catid'=>13,'description'=>'','sticky'=>0,'ordering'=>2,'publish_up'=>'0000-00-00 00:00:00','publish_down'=>'0000-00-00 00:00:00','tags'=>'','params'=>''),
  array('bid'=>3,'cid'=>1,'type'=>'','name'=>'Joomla!','alias'=>'joomla','imptotal'=>0,'impmade'=>279,'clicks'=>0,'imageurl'=>'','clickurl'=>'http://www.joomla.org','date'=>'2006-05-29 14:21:28','showBanner'=>1,'checked_out'=>0,'checked_out_time'=>'0000-00-00 00:00:00','editor'=>'','custombannercode'=>'<a href=\"CLICKURL\" target=\"_blank\">NAME</a>
<br/>
Joomla! The most popular and widely used Open Source CMS Project in the world.','catid'=>14,'description'=>'','sticky'=>0,'ordering'=>1,'publish_up'=>'0000-00-00 00:00:00','publish_down'=>'0000-00-00 00:00:00','tags'=>'','params'=>''),
  array('bid'=>4,'cid'=>1,'type'=>'','name'=>'JoomlaCode','alias'=>'joomlacode','imptotal'=>0,'impmade'=>279,'clicks'=>0,'imageurl'=>'','clickurl'=>'http://joomlacode.org','date'=>'2006-05-29 14:19:26','showBanner'=>1,'checked_out'=>0,'checked_out_time'=>'0000-00-00 00:00:00','editor'=>'','custombannercode'=>'<a href=\"CLICKURL\" target=\"_blank\">NAME</a>
<br/>
JoomlaCode, development and distribution made easy.','catid'=>14,'description'=>'','sticky'=>0,'ordering'=>2,'publish_up'=>'0000-00-00 00:00:00','publish_down'=>'0000-00-00 00:00:00','tags'=>'','params'=>''),
  array('bid'=>5,'cid'=>1,'type'=>'','name'=>'Joomla! Extensions','alias'=>'joomla-extensions','imptotal'=>0,'impmade'=>274,'clicks'=>0,'imageurl'=>'','clickurl'=>'http://extensions.joomla.org','date'=>'2006-05-29 14:23:21','showBanner'=>1,'checked_out'=>0,'checked_out_time'=>'0000-00-00 00:00:00','editor'=>'','custombannercode'=>'<a href=\"CLICKURL\" target=\"_blank\">NAME</a>
<br/>
Joomla! Components, Modules, Plugins and Languages by the bucket load.','catid'=>14,'description'=>'','sticky'=>0,'ordering'=>3,'publish_up'=>'0000-00-00 00:00:00','publish_down'=>'0000-00-00 00:00:00','tags'=>'','params'=>''),
  array('bid'=>6,'cid'=>1,'type'=>'','name'=>'Joomla! Shop','alias'=>'joomla-shop','imptotal'=>0,'impmade'=>274,'clicks'=>0,'imageurl'=>'','clickurl'=>'http://shop.joomla.org','date'=>'2006-05-29 14:23:21','showBanner'=>1,'checked_out'=>0,'checked_out_time'=>'0000-00-00 00:00:00','editor'=>'','custombannercode'=>'<a href=\"CLICKURL\" target=\"_blank\">NAME</a>
<br/>
For all your Joomla! merchandise.','catid'=>14,'description'=>'','sticky'=>0,'ordering'=>4,'publish_up'=>'0000-00-00 00:00:00','publish_down'=>'0000-00-00 00:00:00','tags'=>'','params'=>''),
  array('bid'=>7,'cid'=>1,'type'=>'','name'=>'Joomla! Promo Shop','alias'=>'joomla-promo-shop','imptotal'=>0,'impmade'=>50,'clicks'=>1,'imageurl'=>'shop-ad.jpg','clickurl'=>'http://shop.joomla.org','date'=>'2007-09-19 17:26:24','showBanner'=>1,'checked_out'=>0,'checked_out_time'=>'0000-00-00 00:00:00','editor'=>'','custombannercode'=>'','catid'=>33,'description'=>'','sticky'=>0,'ordering'=>3,'publish_up'=>'0000-00-00 00:00:00','publish_down'=>'0000-00-00 00:00:00','tags'=>'','params'=>''),
  array('bid'=>8,'cid'=>1,'type'=>'','name'=>'Joomla! Promo Books','alias'=>'joomla-promo-books','imptotal'=>0,'impmade'=>57,'clicks'=>0,'imageurl'=>'shop-ad-books.jpg','clickurl'=>'http://shop.joomla.org/index.php?option=com_wrapper&Itemid=8','date'=>'2007-09-19 17:28:01','showBanner'=>1,'checked_out'=>0,'checked_out_time'=>'0000-00-00 00:00:00','editor'=>'','custombannercode'=>'','catid'=>33,'description'=>'','sticky'=>0,'ordering'=>4,'publish_up'=>'0000-00-00 00:00:00','publish_down'=>'0000-00-00 00:00:00','tags'=>'','params'=>'')
);

【问题讨论】:

【参考方案1】:

这有点粗糙,但您可以将文件另存为 CSV file,然后将其导入 Excel,将其复制到剪贴板并粘贴到 Access 中:

/**
 * save array as CSV file, first line will be keys as
 * field specifier
 *
 * @param array $data
 * @param string $filename
 */
function array_csv_save(array $data, $filename) 
    $handle = fopen($filename, 'w');
    $names = array_keys($data[0]);
    fputcsv($handle, $names);
    foreach($data as $fields) 
        fputcsv($handle, $fields);
    
    fclose($handle);


$data = $jos_banner;
$columns = array_keys($data[0]);
array_unshift($data, $columns);
array_csv_save($data, $filename);

指定$filename 以保存您的数据。

另一种选择是打开基于 (odbc?) 的数据库连接到您的 Access 数据库并插入您的值。但我对此并不流利,因此无法提供任何有用的代码。

【讨论】:

【参考方案2】:

您是否尝试过从 mysql 导出到 .csv,然后将该 CSV 导入访问?保存 .csv 文件并以访问权限打开它,它应该会通过向导提示您导入数据。

【讨论】:

这不是一个答案,更多的是好奇...为什么要从 MySQL 导出到 Access?您是将其移回 MySQL 还是将其留在 Access 中? “从那里我可以编写 PHP 来解析它”是引起我好奇心的评论......

以上是关于如何将此 php 数组文件解析为 Access?的主要内容,如果未能解决你的问题,请参考以下文章

如何将此对象转换为 PHP 中的数组

将php数组转换为xml文件

如何将此 .plist 文件直接解析为 Swift 中的对象?

如何将此内容输出到文本区域?

如何在PHP中解析json

使用 php 将 MS Access 颜色转换为十六进制?