我制作了一个脚本,可以从一个文件夹中读取所有CSV文件,然后将数据放入我的数据库中,然后将所有csv文件移动到另一个文件夹中。
我收到带有要放入CSV文件的表格的电子邮件,我试图创建一个脚本来读取我的邮件,仅显示带有表格的电子邮件并将文本转换为CSV文件,然后将文件移至我的文件夹,读取它并传输数据。最大的部分已经完成,但是我为此感到吃力。
过滤邮件并获得表格后,我拿走了HTML标签(<table>, <p>, <tr> etc.)
,我将</td>
替换为制表符,因为它必须分隔行,但在最后一个{{1} }它还添加了一个选项卡,这使我的脚本无法读取CSV文件,因为分隔符是选项卡,而在最后一个选项卡上没有给出值。
这是我的HTML表,它删除了所有带有字符串和preg替换的标签后,如您所见,它的末尾有一个制表符(抱歉隐藏一些文本)
我已经尝试了一些rtrims和substr,但是我无法针对每一行执行此操作。
</td>
仅除去最后一行的制表符,它是1个完整的字符串,所以我不确定是否可以。
如果需要更多代码,那么我想听听。 很抱歉,这个问题很久,不胜感激!
谢谢=)
答案 0 :(得分:1)
尝试使用\ t \ n个字符的str_replace函数:
holder.mPublic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.mPublic.setSelected(true);
holder.mPrivate.setSelected(false);
FirebaseDatabase.getInstance().getReference().child("Reviews").child(mId).child()
}
});
holder.mPrivate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.mPrivate.setSelected(true);
holder.mPublic.setSelected(false);
}
});
答案 1 :(得分:0)
您可以在正则表达式中尝试使用m(PCRE_MULTILINE)修饰符。
这应该从字符串的每一行中删除尾随空格(在$ subject下面)。如果不使用m修饰符,则只会删除字符串末尾的尾部空格。
<?php
$pattern = "@\s$@m";
$subject = "'a'\t'b'\t'c'\t\n'd'\t'e'\t'f'\t\n";
$out = preg_replace($pattern, '', $subject);
print $out;
输出:
'a' 'b' 'c'
'd' 'e' 'f'
请在您的主题上尝试一下,因为此处的输出很难阅读。
答案 2 :(得分:0)
我已经解决了自己的问题。
我将所有<td>
都替换为标签,每个第8个标签都被替换为空,因此我将其删除。
这是我使用的代码:
$res_str = array_chunk(explode("\t",$outputstr),8);
foreach( $res_str as &$val){
$val = implode("\t",$val);
}
echo implode("",$res_str);
我真的很高兴,花了我这么长时间才开始分析甚至无法读取CSV文件然后修复它的问题。