我使用Windows 11。当我在Windows PowerShell中执行PHP文件时,我没有结果与会者。
例如:
<?php
fscanf(STDIN,"%d",$x);
$tab=array();
for ($i=0;$i<$x;$i++){
$row = stream_get_line(STDIN,6+1,"\n");
$tab[] = $row.(strrev($row));
}
echo("\n");
foreach ($tab as $x){
echo($x."\n");
}
foreach (array_reverse($tab) as $x){
echo($x."\n");
}
结果是
PS C:\wamp64\www\> php tablereverse.php
2
ab
bb
ba
bb
bb
ba
但是如果我用PHPSorm运行这个文件结果是
C:\wamp64\bin\php\php8.1.13\php.exe C:\wamp64\www\tableReverse.php
2
ab
bb
abba
bbbb
bbbb
abba
我使用相同的PHP路径
PS C:\wamp64\www\> php -v
PHP 8.1.13 (cli) (built: Nov 22 2022 15:49:14) (ZTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.1.13, Copyright (c) Zend Technologies
with Zend OPcache v8.1.13, Copyright (c), by Zend Technologies
1条答案
按热度按时间nimxete21#
您将
\n
设置为分隔符:但是Windows程序通常使用
\r\n
,这意味着你要反转的字符串包含一个尾随的\r
字符,根据显示它的软件,你可能会看到一个实际的回车符,或者这个字符将保持为空(例如,记事本直到最近才显示\r
),这就解释了:...对比:
您可以切换到fgets()并自己去除分隔符:
(我没有解释PhpStorm中看似重复的输出)。