Хорошо, ребята ... У меня есть HTML, который мне нужно разобрать в php-скрипте и исказить данные вокруг abit. Для лучшего объяснения я покажу, как бы я делал это в скрипте bash, используя awk, grep, egrep и sed через ужасный набор каналов. Прокомментировано для ясности.
curl -s http://myhost.net/mysite/ | \ # retr the document
awk '/\/\action/,/submit/' | \ # Extract only the form element
egrep -v "delete|submit" | \ # Remove the action lines
sed 's/^[ \t]*//;s/[ \t]*$//' | \ # Trim extra whitespaces etc.
sed -n -e ":a" -e "$ s/\n//gp;N;b a" | \ # Remove every line break
sed '{s|<br />|<br />\n|g}' | \ # Insert new line breaks after <br />
grep "onemyndseye@localhost" | \ # Get lines containing my local email
sed '{s/\[[^|]*\]//g}' | \ # Remove my email from the line
Эти команды принимают элемент формы, который выглядит следующим образом:
<form action="/action" method="post">
<input type="checkbox" id="D1" name="D1" /><a href="http://www.linux.com/rss/feeds.php">
http://www.linux.com/rss/feeds.php
</a> [email:
onemyndseye@localhost (Default)
]<br />
<input type="checkbox" id="D2" name="D2" /><a href="http://www.ubuntu.com/rss.xml">
http://www.ubuntu.com/rss.xml
</a> [email:
onemyndseye@localhost (Default)
]<br />
<input type="submit" name="delete_submit" value="Delete Selected" />
И разбивает его на полные однострочные операторы ввода. Готов к вставке в другую форму:
<input type="checkbox" id="D1" name="D1" /><a href="http://www.linux.com/rss/feeds.php">http://www.linux.com/rss/feeds.php</a> <br />
<input type="checkbox" id="D2" name="D2" /><a href="http://www.ubuntu.com/rss.xml">http://www.ubuntu.com/rss.xml</a> <br />
Большой вопрос, как это сделать в PHP? Мне удобно использовать PHP для скручивания страницы ... но, похоже, я потерялся при фильтрации вывода.
Спасибо заранее. :)