[英]How to echo from an array in php?
我有一個文本文件,其中的數字如下所示:
12345678901234567890
123456789012345678901
123456789012345678902
1234567890123456789012
1234567890123456789023
12345678901234567890123
12345678901234567890234
我寫了一個腳本來逐行讀取這個文件。 我想計算行中的字符,而不僅僅是字節,並且只選擇包含 21 或 22 個字符的行。
使用下面的腳本有效。 當我說 23 時,不要問我為什么它讀取 21 個字符。我認為這與文件編碼有關,因為strlen
只為我提供了字節。
選擇長度為 21 或 22 個字符的行后,我需要拆分該行。 如果是21,就應該變成兩個字符串(一個15個字符的字符串和一個6個字符的字符串),如果是22個字符,應該分成一個16個字符的字符串和一個6個字符的字符串。
我試着把它放在一個數組中,但數組顯示如下:
Array ( [0] => 123456789012345 [1] => 678901 ) Array ( [0] => 123456789012345 [1] => 678903 )
我希望它顯示如下:
123456789012345=678901
123456789012345=678903
知道如何從數組中回聲嗎?
$filename = "file.txt";
$fp = fopen($filename, "r") or die("Couldn't open $filename");
while (!feof($fp)){
$line = fgets($fp);
$str = strlen($line);
if($str == 23){
$str1=str_split($line, 15);
print_r($str1);
foreach ($str1 as $value)
{
echo $value . "=" ;
}
}
if($str == 24){
$str1=str_split($line, 16);
foreach ($str1 as $value)
{
echo $value . "=" ;
}
}
}
只是一些提示:
$filename = "file.txt";
$lines = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if ($lines === FALSE) {
die "Couldn't open $filename";
}
foreach ($lines as $line)
{
$length = strlen($line);
if ($length < 21 || $length > 22) {
continue;
}
$start = 15;
if ($length === 22) {
$start = 16;
}
echo substr($line, 0, $start), '=', substr($line, $start), "\n";
}
那是使用file
和substr
。 在 PHP 中,一個字符是一個字節。
一個不同的例子:
$filename = "file.txt";
$lines = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if ($lines === FALSE) {
die "Couldn't open $filename";
}
foreach ($lines as $line)
{
$start = strlen($line) - 6;
if ($start === 15 || $start === 16)
{
echo substr_replace($line, '=', $start, 0), "\n";
}
}
此示例使用substr_replace
並直接預先進行$start
計算。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.