在Linux中有一些背景我已经习惯了这些所谓的oneliners。今天我想将一些HTML垃圾(实体)转换为来自核心PHP的html_entity_decode
的纯文本。
e.g。
>> html_entity_decode( '>' )
'>'
根据口译员的帮助,可以使用-R
选项;
用法:php [options] [-f] [ - ] [args ...] (......) -R< code>运行PHP< code>对于每个输入行 (...)
然而,通常当我认为PHP很棒时,它让我有理由不这样做(原谅态度);
seq 10 | php -R 'echo fgets(STDIN);'
2
4
6
8
10
......通常情况下,说明问题通常会导致解决方案。所以我在写这个问题时想出了问题。标准输入已关闭,因为PHP在终止时关闭打开的文件句柄(请参阅freeing resources),并且由于某些!enticing 实现细节而导致每隔一行丢弃。
感谢您的阅读,如果您愿意,您可以随时使用我的解决方案......
关于自动关闭文件句柄的部分是推断的,因为变量超出范围,因为 main从执行堆栈中弹出。我还没有在php.net上找到这个文档。
答案 0 :(得分:2)
保持标准处于打开状态,使用一个脚本读取所有行(iirc就像在类似的Perl oneliner中一样);
wget https://www.mountaingoatsoftware.com/agile/user-stories -O- |
html2text -nobs -style pretty -width 120 |
php -r 'while ($ii = fgets(STDIN))
echo html_entity_decode($ii);'