Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > регулярное выражение для пути к скрипту


Автор: Lely 3.8.2010, 21:47
Здравствуйте вам.
тут такое дело...нужно в html коде (кусочке) находить все пути к прикрепленным js скриптам...

например есть
Код

<?php
$str2 = "<input type='button' value='turn on design mode' onclick='initI();'/><input type='submit' name='save' value='Сохранить' onClick='saved();'/><script language='javascript' src='/virsicon/js/ed/editor.js' type='text/javascript'></script><input type='button' value='turn on design mode' onclick='initI();'/>";
preg_match_all("#<script(?:.+?)src=[\"'](\S+?)['\"][^>]+?>#is", $str2, $matches1); 
print_r($matches1[1]);
?>

проблема в том, что если написать тег script так
Код

<script language='javascript' type='text/javascript' src='/virsicon/js/ed/editor.js'></script>

регулярное выражение перестает работать...а именно проблема в слеше в "type='text/javascript'"...не получается у меня внести в выражение этот слеш...помогите, пожалуйста... smile 

Автор: patap 3.8.2010, 21:55
Код

<script.*?src=['"](.*?)['"].*?>

Автор: Lely 4.8.2010, 12:21
patap, спасибо большое...только у меня не работает без экранирующих кавычек
Код

<script.*?src=['\"](.*?)['\"].*?>

вот так все замечательно smile 

Автор: programming 4.8.2010, 18:22
Цитата(Lely @ 4.8.2010,  10:21)
patap, спасибо большое...только у меня не работает без экранирующих кавычек
Код

<script.*?src=['\"](.*?)['\"].*?>

вот так все замечательно smile

Видимо вы регулярку вставляете в двойные ковычки.

Автор: studentigor 5.8.2010, 16:06
А еще проще, если конечно с регулярками туго, как у меня, используй simple_html_dom.
Там ты получишь просто массив и все.
ну вот к примеру как я сгрибал линки на странице
Код

include('simple_html_dom.php');
$html = file_get_html($url);
foreach ($html -> find('td[class="info"] h1 a') as $temp2){
            $ou['value'][$i] = strip_tags($temp2,'<br>');
            preg_match('/href=".*">/i', $temp2, $result);
            $link[] = $result[0];
        }
$html->clear();

И в $link[] -  массив всех лиников на странице

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)