可以我真的在这里失去了它。
我只是想把它全部提取出来,这样可能会更清楚。
在我的功能中。php:
function jj_readcsv($filename, $header=false) {
$handle = fopen($filename, "r");
echo \'<table style="width:100%;">\';
//display header row if true
if ($header) {
$csvcontents = fgetcsv($handle);
echo \'<tr>\';
foreach ($csvcontents as $headercolumn) {
echo "<th>$headercolumn</th>";
}
echo \'</tr>\';
}
// displaying contents
while ($csvcontents = fgetcsv($handle)) {
echo \'<tr>\';
foreach ($csvcontents as $column) {
echo "<td>$column</td>";
}
echo \'</tr>\';
}
echo \'</table>\';
fclose($handle);
}
这个函数从数据库中读取上传的文件,并将其输出到一个漂亮的表中。
这是将文件上载到服务器的自定义元数据库。
<?php
function add_meta_box_csv() {
// Define the custom attachment for pages
add_meta_box(
\'meta_box_csv\',
\'Upload csv\',
\'meta_box_csv\',
\'page\',
\'normal\'
);
} // end add_meta_box_csv
add_action(\'add_meta_boxes\', \'add_meta_box_csv\');
function meta_box_csv() {
$file = get_post_meta(get_the_ID(), \'meta_box_csv\', true);
wp_nonce_field(plugin_basename(__FILE__), \'meta_box_csv_nonce\');
$html = \'<p class="description">\';
$html .= \'Selecteer een .csv bestand.\';
$html .= \'</p>\';
echo $html;
printf( \'<p><input type="file" name="meta_box_csv" value="\'.$file[\'file\'].\'" size="15" /></p>\' );
$content = jj_readcsv($file[\'file\'],true);
//$editor_id = \'mycustomeditor\';
//wp_editor( $content, $editor_id );
//$csv = array_map(\'str_getcsv\', file(\'data.csv\'));
} // end meta_box_csv
function save_custom_meta_data($id) {
/* --- security verification --- */
if(!wp_verify_nonce($_POST[\'meta_box_csv_nonce\'], plugin_basename(__FILE__))) {
return $id;
} // end if
if(defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE) {
return $id;
} // end if
if(\'page\' == $_POST[\'post_type\']) {
if(!current_user_can(\'edit_page\', $id)) {
return $id;
} // end if
} else {
if(!current_user_can(\'edit_page\', $id)) {
return $id;
} // end if
} // end if
/* - end security verification - */
// Make sure the file array isn\'t empty
if(!empty($_FILES[\'meta_box_csv\'][\'name\'])) {
// Setup the array of supported file types. In this case, it\'s just PDF.
$supported_types = array(\'text/csv\');
//$supported_types = array(\'text/comma-separated-values\');
// Get the file type of the upload
$arr_file_type = wp_check_filetype(basename($_FILES[\'meta_box_csv\'][\'name\']));
$uploaded_type = $arr_file_type[\'type\'];
// Check if the type is supported. If not, throw an error.
if(in_array($uploaded_type, $supported_types)) {
// Use the WordPress API to upload the file
$upload = wp_upload_bits($_FILES[\'meta_box_csv\'][\'name\'], null, file_get_contents($_FILES[\'meta_box_csv\'][\'tmp_name\']));
if(isset($upload[\'error\']) && $upload[\'error\'] != 0) {
wp_die(\'Er is een fout ontstaan bij het uploaden: \' . $upload[\'error\']);
} else {
add_post_meta($id, \'meta_box_csv\', $upload);
update_post_meta($id, \'meta_box_csv\', $upload);
} // end if/else
} else {
wp_die("Dit is geen .csv bestand");
} // end if/else
} // end if
} // end save_custom_meta_data
add_action(\'save_post\', \'save_custom_meta_data\');
function update_edit_form() {
echo \' enctype="multipart/form-data"\';
} // end update_edit_form
add_action(\'post_edit_form_tag\', \'update_edit_form\');
?>
我可以在我的metabox中输出上传csv的内容。问题是我想在wp\\U编辑器框中输出csv的内容,但要做到这一点,我需要有一个包含数据的字符串。
有没有办法存储的输出数据function jj_readcsv()
在字符串变量中,以便我可以使用它输出?
考虑到@TomJNowell所说的:我不能将其视为纯文本文件。
我希望任何人都能理解我的痛苦,并能帮助我走出困境!
非常感谢。M
-编辑好了,开始工作了。Thnx收件人:https://stackoverflow.com/users/803518/jlevett用他的决心:https://stackoverflow.com/a/6675199/3115317他给了我这个:
ob_start();
jj_readcsv($file[\'file\'],true);
$link = ob_get_contents();
ob_end_clean();
$editor_id = \'my_uploaded_csv\';
wp_editor( $link, $editor_id );
而且很有魅力。