【问题标题】:pipe php function管道php函数
【发布时间】:2012-03-14 13:21:15
【问题描述】:
我想在 bash 脚本中使用 php 的 strip 标签。我想我可以只捕获我想使用的 html 文件并使用该输入并将其通过管道传输到 php 中,然后将其通过管道传输到其他东西(sed)。那可能吗?我不确定如何将 file.html 的输出通过管道传输到 strip_tag 函数中......也许把它全部放在一个变量中?我希望以下内容仅保留锚标记...在下面我为 strip_tags 字符串输入虚拟文本,因为我不知道如何将 file.html 导入:
cat file.html | php strip_tags("<p><a href='#'>hi</a></p>",'<a>') > removed_tags.html
【问题讨论】:
标签:
php
bash
unix
command-line
【解决方案1】:
您可以使用流 URI php://stdin 从 PHP 中的 STDIN 读取。至于执行它,您还需要引用 PHP 代码并使用 -r 选项以及 echoing 结果。所以这里是固定的脚本:
cat file.html | php -r "echo strip_tags(file_get_contents('php://stdin'), '<a>');" > removed_tags.html
【解决方案2】:
在 PHP 中从标准输入读取并编写没有文件的 php 脚本是可能的,但这比编写文件更麻烦
<?php echo strip_tags(file_get_contents($argv[1]), '<a>');
...
$ php that-file.php file.html > removed_tags.html