|
|
|
| Вот как я нахожу цсс на любой хтмл-странице:
"/<.*?stylesheet.*?href=[\"|']{0,1}((.*?)\.css)[\"|'|>|\s]/si"
но такое <link href="/styles.css" type=text/css rel=stylesheet>
уже не обрабатывается - там stylesheet не перед а после href стоит
Подскажите пожалуйста как сделать так, чтобы оно понимало что stylesheet или перед, или после href, но полюбому должен стоять между < >? | |
|
|
|
|
|
|
|
для: kulibko
(07.11.2007 в 15:50)
| | А так не проще будет
<?php
$text="<br>ghgngj<link href=\"/styles.css\" type=text/css rel=stylesheet>jhgjgh";
preg_match("|(<link [^>]+>)|is", $text, $out);
$css=$out[1];
?>
|
| |
|
|
|
|
|
|
|
для: Faraon
(07.11.2007 в 16:18)
| | А можно еще проще
#href=(['"]?)(.*?\.css)\\1#
|
| |
|
|
|
|
|
|
|
для: SHAman
(07.11.2007 в 17:35)
| | Если только автору надо файл найти
А если всю строку <link ...> то мой вариант
P.S. Здесь надо что-то заэкранировать ;) | |
|
|
|
|
|
|
|
для: Faraon
(07.11.2007 в 17:42)
| | про <link> - да.
про экранирование - :) Это в php надо, а в Perl не надо:) Ну, я думаю, смысл понятен. | |
|
|
|
|
|
|
|
для: SHAman
(07.11.2007 в 17:35)
| | идею понял, спасибо :)
А в более общем случае - если нечто может быть или перед, или после искомого но между < > - как это нечто найти? | |
|
|
|
|
|
|
|
для: kulibko
(07.11.2007 в 18:37)
| | Можно использовать опережающую проверку
/<(?=[^>]*?stylesheet)[^>]*?href=[\"']?([^>\s]+\.css)[\"'>\s]/si
Или же просто составить два выражения для обоих случаев. | |
|
|
|