2017-02-15 48 views
0

我對PHP很新穎,我創建了一個簡單的腳本,它從文本文件中收集數據並將其打印在表格中。從文本文件中打印單詞的長度

在文本文件中的數據是這樣的:

0086.se 2017-04-02 
0102design.se 2017-03-03 
0141.se 2017-04-21 
0158.se 2017-03-27 

輸出看起來是這樣的:

<table> 
<tr><th>Name</td><th>Date</td></tr> 
<tr><td>0086.se</td><td>2017-04-02</td></tr> 
<tr><td>0102design.se</td><td>2017-03-03</td></tr> 
<tr><td>0141.se</td><td>2017-04-21</td></tr> 
<tr><td>0158.se</td><td>2017-03-27</td></tr> 
</table> 

這是我的代碼:

<table> 
    <tr> 
     <th>Name</td> 
     <th>Date</td> 
    </tr> 
<?php 
$file_handle = fopen("domaner.txt", "rb"); 

while (!feof($file_handle)) { 
    $line_of_text = fgets($file_handle); 
    $parts = explode(' ', $line_of_text); 
    echo "<tr><td>$parts[0]</td><td>$parts[1]</td></tr>"; 
} 
fclose($file_handle); 
?> 
</table> 

我想什麼do是在日期列後添加一個TD,用於打印Name列中單詞的長度,但不包括「.se」。例如0086.se會給長度4.就像這樣:

<tr><td>0086.se</td><td>2017-04-02</td><td>THE LENGHT OF 0086 HERE</td></tr> 

我希望有人明白我想在這裏實現:)

回答

1

下面應該工作:

<table> 
    <tr> 
     <th>Name</th> 
     <th>Date</th> 
     <th>Lenght</th> 
    </tr> 
<?php 
$file_handle = fopen("domaner.txt", "rb"); 

while (!feof($file_handle)) { 
    $line_of_text = fgets($file_handle); 
    $parts = explode(' ', $line_of_text); 
    $tmp = explode('.', $parts[0]); 
    echo "<tr><td>".$parts[0]."</td><td>".$parts[1]."</td><td>".strlen($tmp[0])."</td></tr>"; 
} 
fclose($file_handle); 
?> 
</table> 
+0

謝謝,但它給了我所有錶行的值爲0。 – AndreasC

+0

第一個爆炸爲雙空間而不是一個,我會糾正它。 –

+0

我得到它的工作,非常好!謝謝。 – AndreasC

0

這應該給你,你要尋找的數!

echo strlen($ parts);

+0

謝謝您的回答。你能告訴我如何將它包含在代碼中嗎?我害怕我無法實現它。 – AndreasC

+0

@ laurent-ub給了你絕對美妙的實現,包括如何將它包含到代碼中。我會按照他/她的回答 - 這比我最初的想法要好。 – 0708

+0

是的,我正在使用它,謝謝:) – AndreasC

0

修改您的迴音這一

echo "<tr><td>$parts[0]</td><td>$parts[1]</td><td>iconv_strlen($parts[0])-3</td></tr>"; 
相關問題