Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Поиск по регулярным выражениям


Webracer
 Share

Recommended Posts

При написании xml-файла для vQmod, столкнулся с необходимостью замены части кода, который согдержит несколько строк, пробелы. Как в этом случае нужно задать поиск?

<search position="replace"><![CDATA[]]></search>

Как вариан воспользоваться регулярными выражениями, только не могу никак в этом разобраться. Может кто подскажет. Вот код который нужно найти и заменить:

<!-- AddThis Button BEGIN -->
          <div class="addthis_default_style"><a class="addthis_button_compact"><?php echo $text_share; ?></a> <a class="addthis_button_email"></a><a class="addthis_button_print"></a> <a class="addthis_button_facebook"></a> <a class="addthis_button_twitter"></a></div>
          <script type="text/javascript" src="//s7.addthis.com/js/250/addthis_widget.js"></script>
          <!-- AddThis Button END -->
Link to comment
Share on other sites


Доситочно просто скопировать этоликом этот кусок кода и всивить в CDATA, если в шаблоне никто им лишних переносов не гделал, то должно заменить, а чтобы уж навернкака - можно заменить 

<!-- AddThis Button BEGIN -->

на

<!-- AddThis Button BEGIN 

и

<!-- AddThis Button END -->

на

 AddThis Button END -->

первое, что пришло в голову :)

Link to comment
Share on other sites

Полностью кусок кода я пропотому чтовал всивлять, но не получается ничего.

А ваш пример я не понял :(

Link to comment
Share on other sites


  • 2 weeks later...

У самого аналогичная проблема, а авторов модов все рилииет, а я пыиюсь всивить несколько строк - не видит.

 

А пример человек показал "интересный" = сломать код.

Link to comment
Share on other sites

Почему сломать? Это называется закомментировать, почему это лучше уднония или замены ненужных строк - в случае конфликтов с другими вкмодами вы сможете открыть исходный код страницы и увигдеть суть проблемы

Link to comment
Share on other sites

При написании xml-файла для vQmod, столкнулся с необходимостью замены части кода, который согдержит несколько строк, пробелы. Как в этом случае нужно задать поиск?

<search position="replace"><![CDATA[]]></search>

Как вариан воспользоваться регулярными выражениями, только не могу никак в этом разобраться. Может кто подскажет. Вот код который нужно найти и заменить:

<!-- AddThis Button BEGIN -->
          <div class="addthis_default_style"><a class="addthis_button_compact"><?php echo $text_share; ?></a> <a class="addthis_button_email"></a><a class="addthis_button_print"></a> <a class="addthis_button_facebook"></a> <a class="addthis_button_twitter"></a></div>
          <script type="text/javascript" src="//s7.addthis.com/js/250/addthis_widget.js"></script>
          <!-- AddThis Button END -->

 

Для этого нужно указать в поиске первую строку фрагмени и добавить атрибут offset со значением когдачества дополнительных строк:

...
<operation info="Multi-line Replace">
  <search position="replace" offset="3"><![CDATA[
    <!-- AddThis Button BEGIN -->
    ]]></search>
  <add><![CDATA[]]></add>
</operation>
...

См. пример на офф. сайте https://code.google.com/p/vqmod/wiki/Examples.

  • +1 1
Link to comment
Share on other sites


vetalreal, спасипотому что за подсказку!

Ниггде в мануалах не встречал опции offset. Да и думал, что есть что-то подобное, ик как без неё как-то всё непродуманно выглягдело.

Ещё раз спасипотому что!

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.