[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получение всех подключаемых js
Эли4ка
Здравствуйте,помогите пожалуйста сделать регулярное выражение,которое показывает все подключаемые javascript'ы..
Такой почему-то не работает..
preg_match_all("@<script.*src=\"([^\"].*)\".*></script>@si", $file , $ur);




Спустя 28 минут, 36 секунд (17.03.2012 - 13:01) nugle написал(а):
Эли4ка
на такое поменяй
Цитата
@<script.*src=\"(?:[^\"].*)\".*></script>\s@Usi

Спустя 1 минута, 54 секунды (17.03.2012 - 13:03) glock18 написал(а):
script.*src

=>

script.*?src

Спустя 13 минут, 56 секунд (17.03.2012 - 13:17) Эли4ка написал(а):
nugle,
glock18
к сожалению Ваши варианты почему-то не работают..sad.gif sad.gif sad.gif

Спустя 1 минута, 51 секунда (17.03.2012 - 13:19) glock18 написал(а):
[^\"].*
[^\"].*?

.*></script>
.*?></script>

Спустя 5 минут, 34 секунды (17.03.2012 - 13:24) glock18 написал(а):
Эли4ка
выучите регулярные выражения. программируете уже давно, судя по всему, а им внимания не уделили никакого почти. выучить их можно за 2-3 часа, после чего вопросы по ним не будете задавать wink.gif

Спустя 1 час, 4 минуты, 33 секунды (17.03.2012 - 14:29) nugle написал(а):
glock18
2-3 часа? ну ты дядь прям волшебник, я сколько учу все новые вещи постоянно попадаются
Эли4ка,
не может, чтобы не работало, показывай текст, который гонишь

Спустя 13 минут, 14 секунд (17.03.2012 - 14:42) glock18 написал(а):
Цитата (nugle @ 17.03.2012 - 11:29)
glock18
2-3 часа? ну ты дядь прям волшебник, я сколько учу все новые вещи постоянно попадаются
Эли4ка,
не может, чтобы не работало, показывай текст, который гонишь

как же так учите то? понимаю, можно забыть о чем-то ввиду редкого использования. Тем не менее, объем знаний по рег. выражениям совсем невелик, ознакомиться со всеми ими можно за час. Еще минут 10 на поиск в гугле. Еще час-два на то, что разобраться во всем

Спустя 5 минут, 24 секунды (17.03.2012 - 14:48) glock18 написал(а):
nugle
позволю себе поправить вас еще раз. вы не учите рег-ки то время, о котором так говорите ("сколько учу..."), либо это и правда 2-3 часа... Дело в том, что скорее всего вы не учите их, и просто периодически узнаете о них что-то новое. Таким темпом можно и 10 лет учить, а можно не дожидаться того момента, когда нужда или случай принесут вас к новой порции знаний, а самому их найти.

Спустя 5 минут, 34 секунды (17.03.2012 - 14:53) glock18 написал(а):
кстати, регулярка ваша не работает, это с одного взгляда понятно. Едва ли флаг U каким-либо образом изменит поведение при обработке текста из однобайтовых символов wink.gif

Спустя 24 минуты, 36 секунд (17.03.2012 - 15:18) Visman написал(а):
glock18, странно конечно, но регулярка отлично работает хоть на однобайтных, хоть на многобайтных символах wink.gif

Спустя 4 минуты, 20 секунд (17.03.2012 - 15:22) nugle написал(а):
glock18
Цитата
вы не учите рег-ки то время, о котором так говорите ("сколько учу..."), либо это и правда 2-3 часа...

в общем объеме дня два учу)
Ну если по-твоему так просты регулярки, зачем писать по ним книги?

Спустя 36 минут, 29 секунд (17.03.2012 - 15:59) glock18 написал(а):
Цитата (Visman @ 17.03.2012 - 12:18)
glock18, странно конечно, но регулярка отлично работает хоть на однобайтных, хоть на многобайтных символах wink.gif

не работает. ни так, ни так. и кодировка тут совершенно ни при чем. раз так плохо доходит, то попробуйте выбрать так из текста несколько скриптов так, чтобы каждому соответствовал один match. А затем подумайте КАКИМ МЕСТОМ в решении этой проблемы помог флаг U.

Спустя 5 минут, 51 секунда (17.03.2012 - 16:04) Visman написал(а):
glock18, пример

<pre>
<?php

$file = ' <script type="text/javascript" src="/javascripts/1331909760/_parts/posts.js"></script>
<script type="text/javascript" src="/javascripts/1331909760/libs/jquery.form.js"></script>
<script type="text/javascript" src="/javascripts/1331909760/libs/highlight.js"></script>
<script type="text/javascript" src="/javascripts/1331909760/libs/swfobject.js"></script>
<script type="text/javascript" src="/javascripts/1331909760/posts/all.js"></script>


<script type="text/javascript" src="/js/1331909760/adriver.core.2.js"></script>'
;
preg_match_all("@<script.*src=\"([^\"].*)\".*></script>@siU", $file , $ur);

print_r($ur);
?>
</pre>

результат
Array
(
[0] => Array
(
[0] => <script type="text/javascript" src="/javascripts/1331909760/_parts/posts.js"></script>
[1] => <script type="text/javascript" src="/javascripts/1331909760/libs/jquery.form.js"></script>
[2] => <script type="text/javascript" src="/javascripts/1331909760/libs/highlight.js"></script>
[3] => <script type="text/javascript" src="/javascripts/1331909760/libs/swfobject.js"></script>
[4] => <script type="text/javascript" src="/javascripts/1331909760/posts/all.js"></script>
[5] => <script type="text/javascript" src="/js/1331909760/adriver.core.2.js"></script>
)

[1] => Array
(
[0] => /javascripts/1331909760/_parts/posts.js
[1] => /javascripts/1331909760/libs/jquery.form.js
[2] => /javascripts/1331909760/libs/highlight.js
[3] => /javascripts/1331909760/libs/swfobject.js
[4] => /javascripts/1331909760/posts/all.js
[5] => /js/1331909760/adriver.core.2.js
)

)

Спустя 1 минута, 15 секунд (17.03.2012 - 16:06) glock18 написал(а):
Цитата (nugle @ 17.03.2012 - 12:22)
glock18
Цитата
вы не учите рег-ки то время, о котором так говорите ("сколько учу..."), либо это и правда 2-3 часа...

в общем объеме дня два учу)
Ну если по-твоему так просты регулярки, зачем писать по ним книги?

я не говорил, что они просты. я сказал, что объем знаний по ним не так уж велик.в книгах тот же самый объем обычно расписывают на много и много глав так, чтобы каждый момент показать с примерами. согласен, что для полного понимания рег-рок нужно больше 3 часов, но 3 часов хватит, чтобы грамотно решать 95% возникающих задач, связанных с регулярками.

пример из топика на знание самых элементарных вещей (даже всего одной), и не требует совершенно никаких глубоких знаний или глубокого понимания регулярок. И большинство возникающих задач обычно едва ли сложнее. 100% понимания предмета, регулярок в частности, достигать надо долгое время, но вопрос в том, нужно ли оно тому, что прибегает к ним раз в неделю? необходимый уровень можно получить, потратив часа 1,5-2, просто внимательно просмотрев возможности регулярок.

Спустя 11 минут, 1 секунда (17.03.2012 - 16:17) glock18 написал(а):
Visman
если так, стало быть я не прав. Казалось, что флаг U для указания кодировки utf-8 используется, но если результат такой, как вы показываете - выходит, что он для этого служит, и я не прав. Напомните, что он значит?

Спустя 9 минут, 24 секунды (17.03.2012 - 16:26) Visman написал(а):
Цитата (glock18 @ 17.03.2012 - 21:17)
что флаг U для указания кодировки utf-8 используется,

Для этого u используется tongue.gif
А U
Цитата
Этот модификатор инвертирует жадность квантификаторов, таким образом они по умолчанию не жадные. Но становятся жадными, если за ними следует символ '?'. Такая возможность не совместима с Perl. Модификатор U также может использоваться внутри шаблона, при помощи '?U' записи.

Спустя 15 минут, 55 секунд (17.03.2012 - 16:42) glock18 написал(а):
Понятно, так и подумал. Сдаюсь smile.gif

Спустя 10 часов, 26 минут, 6 секунд (18.03.2012 - 03:08) Эли4ка написал(а):
Visman
Ваш вариант действительно рабочий..спасибо ,плюсик в карму с меня.
glock18
ну мне регулярные выражения мне даются не очень легко.. sad.gif sad.gif

Спустя 26 минут, 6 секунд (18.03.2012 - 03:34) Эли4ка написал(а):
Visman
кстати,если надо получить все скрипты с сайта,то вырезает вдобавок еще и много кода,совсем ненужного..

Спустя 1 час, 38 минут, 19 секунд (18.03.2012 - 05:12) Visman написал(а):
Эли4ка, это не мой вариант, это вариант nugle wink.gif
Брать надо подмассив элемент 1 массива. В нулевом элементе массива лежат полные строки, а не ссылки на скрипты.

Спустя 1 день, 1 час, 6 секунд (19.03.2012 - 06:13) Эли4ка написал(а):
Visman
да..я так и сделала..
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.