簡體   English   中英

如何從php中的數組回顯?

[英]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";
}

那是使用filesubstr 在 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.

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