2017-02-15 58 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>"; 
相关问题