簡體   English   中英

刪除每行的最后一個字符

[英]Remove last character on each line

我制作了一個腳本,該腳本從一個文件夾中讀取所有CSV文件,然后將數據放入我的數據庫中,然后將所有csv文件移動到另一個文件夾中。

我收到了帶有要放入CSV文件的表格的電子郵件,我試圖創建一個腳本來讀取我的郵件,僅顯示帶有表格的電子郵件並將文本轉換為CSV文件,然后將文件移至我的文件夾,讀取並傳輸數據。 最大的部分已經完成,但是我為此感到吃力。

過濾郵件並獲得表格后,我拿走了HTML標記(<table>, <p>, <tr> etc.)我將</td>替換為選項卡,因為它必須分隔行,但在最后一個</td>還會添加一個標簽,這使我的腳本無法讀取CSV文件,因為分隔符是標簽,並且在最后一個標簽上未提供任何值。

這是我的HTML表格,刪除了所有帶有字符串和preg替換的標簽后,並且如您所見,它的末尾有一個選項卡(抱歉隱藏一些文本)

HTML表格

我已經嘗試了一些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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM