[英]Remove last character on each line
我制作了一個腳本,該腳本從一個文件夾中讀取所有CSV文件,然后將數據放入我的數據庫中,然后將所有csv文件移動到另一個文件夾中。
我收到了帶有要放入CSV文件的表格的電子郵件,我試圖創建一個腳本來讀取我的郵件,僅顯示帶有表格的電子郵件並將文本轉換為CSV文件,然后將文件移至我的文件夾,讀取並傳輸數據。 最大的部分已經完成,但是我為此感到吃力。
過濾郵件並獲得表格后,我拿走了HTML標記(<table>, <p>, <tr> etc.)
我將</td>
替換為選項卡,因為它必須分隔行,但在最后一個</td>
還會添加一個標簽,這使我的腳本無法讀取CSV文件,因為分隔符是標簽,並且在最后一個標簽上未提供任何值。
這是我的HTML表格,刪除了所有帶有字符串和preg替換的標簽后,並且如您所見,它的末尾有一個選項卡(抱歉隱藏一些文本)
我已經嘗試了一些rtrims和substr,但是我無法為每一行都這樣做。
echo substr($key, 0, -1);
只刪除最后一行的制表符,它是1個完整的字符串,所以我不確定是否可以。
如果需要更多代碼,那么我想聽聽。 抱歉,很長的問題,我們將不勝感激!
謝謝=)
嘗試使用帶有\\ t \\ n字符的str_replace函數:
str_replace("\t\n","\n", $string);
您可以在正則表達式中嘗試使用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'
請嘗試對您的主題進行嘗試,因為此處的輸出很難閱讀。
我已經解決了我自己的問題。 我用制表符替換了所有<td>
,每個第8個制表符都被替換為空,因此將其刪除。
這是我使用的代碼:
$res_str = array_chunk(explode("\t",$outputstr),8);
foreach( $res_str as &$val){
$val = implode("\t",$val);
}
echo implode("",$res_str);
我真的很高興,花了我很長時間才開始分析甚至無法讀取CSV文件然后修復它的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.