<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3800708</guid>
        <pubDate>Wed, 05 Jun 2019 01:18:14 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3800708</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3797766'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D&#045;G &#064; <time class="tag-quote__quoted-time" datetime="2019-05-01T17:56:36+03:00">01.05.19, 14:56</time></span><div class='quote '>Почитал и про компосер, и понял, что мне туда ещё рано...</div></div><br>
Вполне допускаю. <br>
<br>
1) Но чем раньше попытаешься понять как написать &quot;composer require xxx&quot; и воспользоваться сторонним библиотечным кодом - тем лучше. Т.к. на сторонних решениях можно очень хорошо прокачать скилл.<br>
2) Чем раньше откажешься от global, тем лучше.<br>
<br>
<br>
Ну и небольшой оффтоп, раз разобрался с регулярками, то думаю и с этим разберёшься. Писал как раз для таких случаев: <a class='tag-url' href='https://github.com/phplrt/phplrt' target='_blank'>https://github.com/phplrt/phplrt</a> В твоём случае будет интересен вот этот функционал: <a class='tag-url' href='https://github.com/phplrt/phplrt/blob/master/docs/lexer.md' target='_blank'>https://github.com/phplrt/phplrt/blob/master/docs/lexer.md</a>]]></description>
        <author>Serafim</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3798999</guid>
        <pubDate>Wed, 15 May 2019 16:06:21 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3798999</link>
        <description><![CDATA[D-G: Сам нашел ошибку. Невнимательность. В первом случае был двойной вызов функции get_file_for_change, а во втором забывал переменную  прописать. Кому интересно вот работающий код:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#60;head&#62;</div><div class="code_line">&#60;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;/head&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;?php</div><div class="code_line">if (isset($_POST[&#39;find_css&#39;]))</div><div class="code_line">{find_css(&#39;.&#39;);}</div><div class="code_line">&nbsp;</div><div class="code_line">?&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;!--- Кнопка для сканирования ---&#62;</div><div class="code_line">&#60;form method=&quot;post&quot;&#62;</div><div class="code_line">&#60;input name=&quot;find_css&quot; type=&quot;submit&quot; value=&quot;Найти css в корневой папке&quot;&#62;</div><div class="code_line">&#60;/form&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;!--- Проверка нажатия кнопки для счетчика &nbsp;---&#62;</div><div class="code_line">&#60;?php</div><div class="code_line">if (isset($_POST[&#39;find_css&#39;]))</div><div class="code_line">{calcul();}</div><div class="code_line">&nbsp;?&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;!--- Форма списка,куда должны передаваться результаты для дальнейшего выбора &nbsp;---&#62;</div><div class="code_line">&#60;div class=&quot;form&quot;&#62;</div><div class="code_line">&#60;form action=&quot;&quot; method=&quot;post&quot;&#62;</div><div class="code_line">&#60;div style=&quot;width:100%; height:150px; overflow:auto; border:solid 1px #C3E4FE;&quot;&#62;</div><div class="code_line">&#60;?php </div><div class="code_line">if (isset($_POST[&#39;find_css&#39;]))</div><div class="code_line">{add_strok();} </div><div class="code_line">?&#62; &nbsp;&#60;!--- Вызов функции для добавления строк с проверкой нажатия кнопки ---&#62;</div><div class="code_line">&#60;/div&#62;</div><div class="code_line">&nbsp;&#60;input type=&quot;submit&quot; name=&quot;vibor_for_change&quot; value=&quot;Выполнить&quot;&#62;</div><div class="code_line">&#60;/form&#62;</div><div class="code_line">&#60;/div&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;?php</div><div class="code_line">// Калькулятор найденых файлов</div><div class="code_line">function calcul()</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp;global $matchV; global $pic_on; global $parth_on;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;$calc=count($parth_on); &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; echo &quot;Найдено $calc файла(ов)&quot;;</div><div class="code_line">&nbsp;&nbsp; }</div><div class="code_line">&nbsp;</div><div class="code_line">// Функция добавления строк в список</div><div class="code_line">function add_strok()</div><div class="code_line">&nbsp;&nbsp; {</div><div class="code_line">&nbsp;global $pic_on; global $parth_on;</div><div class="code_line">&nbsp;&nbsp; for ($i=0; $i&#60;count($parth_on); $i++) &nbsp;// по идее доолжна была проверять количество строк (элементов массива и быть счетчиком)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;echo &quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;&#60;input type=\&quot;radio\&quot; name=\&quot;strok\&quot; value=\&quot;$parth_on[$i]\&quot; /&#62;</div><div class="code_line">&#60;div style=\&quot;display:grid; grid-template-columns:80% 20%; \&quot;&#62;</div><div class="code_line">&#60;div style=\&quot; grid-column: 1 / 1;\&quot;&#62;$parth_on[$i]&#60;/div&#62;</div><div class="code_line">&#60;div style=\&quot;grid-column: 2 / 2;\&quot;&#62;$pic_on[$i]&#60;/div&#62;&#60;/div&#62;&#60;br&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;} </div><div class="code_line">&nbsp;&nbsp; }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">// РАБОЧАЯ Функция для нахождения всех css</div><div class="code_line">function find_css($dir)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;global $pic_on; global $parth_on;</div><div class="code_line">&nbsp;&nbsp;foreach (glob($dir.DIRECTORY_SEPARATOR.&quot;*&quot;) as $annown)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; if (is_dir($annown))</div><div class="code_line">&nbsp;&nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (find_css($annown)) continue;</div><div class="code_line">&nbsp;&nbsp; &nbsp; }</div><div class="code_line">&nbsp;&nbsp; &nbsp; else</div><div class="code_line">&nbsp;&nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;$parth_annown[] =$annown;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;//echo $annown; echo &#39;&#60;br&#62;&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (preg_match_all(&quot;/^.*\.(css)$/i&quot;,$annown,$match, PREG_PATTERN_ORDER )) // выбираем все картинки</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $matchV=array_values($match[0]); // собираем картинки в массив</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;foreach ($matchV as $key=&#62;$css)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$parth_on[]=$css;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$pic_on[] =&#39;&#60;img src=&quot;./icon/icons8-css-26.png&quot; width=&quot;100%&quot; height=&quot;100%&quot; &#62;&#39;; &nbsp; // делаем превью с иконкой</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// echo $pic; echo &#39;&#60;br&#62;&#39;; // оставил для проверки</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div class="code_line">&nbsp;&nbsp; &nbsp; }</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">?&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;?--- &nbsp;тут начало всех форм по вкладкам &nbsp;---&#62;</div><div class="code_line">&nbsp;&nbsp; &#60;?php</div><div class="code_line">if (isset($_POST[&#39;strok&#39;])) {$for_change=$_POST[&#39;strok&#39;]; get_file_for_change($_POST[&#39;strok&#39;]); }</div><div class="code_line">&nbsp;</div><div class="code_line">function get_file_for_change()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp; global $block; global $ubr; $count; global $mas1; global $match; global $match1; global $match2; global $matchV; global $matchV1; global $matchV2; global $value; </div><div class="code_line">global $count; global $ubr; global $for_change;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;$block=file_get_contents($for_change);</div><div class="code_line">&nbsp;&nbsp;{ </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; preg_match_all(&#39;/()(.*)(\b.*{)|(.)(.*)(,\s)/&#39;, $block, $match, PREG_PATTERN_ORDER);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; $matchV=array_values($match[0]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;function trim_value(&amp;$value)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $value = preg_replace(&#39;/(\.)(.*)(\.)/&#39;,&#39;.&#39;, $value); &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $value = preg_replace(&#39;/(\.)(.*)(\.)/&#39;,&#39;.&#39;, $value); &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $value=preg_replace(&#39;/,\s+/&#39;,&#39;&#39;, $value);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $value = trim($value, &#39; {&#39;); </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;array_walk($matchV, &#39;trim_value&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; preg_match_all(&#39;/(,\s.)(.*)(,)/&#39;, $block, $match1, PREG_PATTERN_ORDER);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; $matchV1=array_values($match1[0]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; function trim_value1(&amp;$value)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$value = preg_replace(&#39;/(,\s)(.*)(\.)/&#39;,&#39;.&#39;, $value); &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$value = preg_replace(&#39;/(,)/&#39;,&#39;&#39;, $value); &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; array_walk($matchV1, &#39;trim_value1&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;preg_match_all(&#39;/(.*,\s)(.*)(,\s+)/&#39;, $block, $match2, PREG_PATTERN_ORDER);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;$matchV2=array_values($match2[0]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;function trim_value2(&amp;$value)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$value = preg_replace(&#39;/(,)(.*)(,)/&#39;,&#39;&#39;, $value); &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;array_walk($matchV2, &#39;trim_value2&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;$mas1=array_merge($matchV, $matchV1, $matchV2);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;function trim_value3(&amp;$value)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $value = preg_replace(&#39;/(\.)(.*)(\.)/&#39;,&#39;.&#39;, $value); &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $value = preg_replace(&#39;/(\.)(.*)(\.)/&#39;,&#39;.&#39;, $value); &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $value=preg_replace(&#39;/,\s+/&#39;,&#39;&#39;, $value);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; array_walk($mas1, &#39;trim_value3&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; $ubr=array_unique($mas1);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; $count=count($ubr);</div><div class="code_line">&nbsp;&nbsp; &nbsp;$mas1id=preg_replace(&#39;/(\.)/&#39;, &#39;&#39;, $ubr);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;function add_fields()</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;global $block; global $ubr; $count; global $mas1; global $match; global $match1; global $match2; global $matchV; global $matchV1; global $matchV2; global $value;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;global $count;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;global $ubr;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for ($i=0; $i&#60;$count; $i++)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo &quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#60;input type=\&quot;checkbox\&quot; name=\&quot;add_fields_class[]\&quot; value=\&quot;$ubr[$i]\&quot; &nbsp;/&#62;$ubr[$i] &#60;br&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">}</div><div class="code_line">?&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;form action=&quot;sovm.php&quot; method=&quot;post&quot;&#62;</div><div class="code_line">&#60;div style=&quot;width:20%; height:100px; overflow:auto; border:solid 1px #C3E4FE;&quot;&#62;</div><div class="code_line">&#60;?php </div><div class="code_line">//get_file_for_change();</div><div class="code_line">if (isset($_POST[&#39;strok&#39;])) {$for_change=$_POST[&#39;strok&#39;]; add_fields($_POST[&#39;strok&#39;]); }</div><div class="code_line">&nbsp;?&#62;</div><div class="code_line">&#60;/div&#62;</div><div class="code_line">&nbsp;&#60;input type=&quot;submit&quot; name=&quot;formSubmit&quot; value=&quot;Выполнить&quot;&#62;</div><div class="code_line">&#60;/form&#62; &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp;&#60;/div&#62;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
По сути основные вопросы изначальной темы решены. Хоть и не все нюансы тут показаны, но направление есть. Кто захочет - разовьет тему или спросит. Ну а я принцип понял, развил. Может и будут ещё вопросы по нюансам, но это уже нюансы.]]></description>
        <author>D-G</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3798918</guid>
        <pubDate>Tue, 14 May 2019 13:39:40 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3798918</link>
        <description><![CDATA[D-G: Подправил слегка тему. Надеюсь такое не запрещено правилами. По крайней мере вроде явно об этом нет. Ну а лишь немного подправил, чтоб был некий компромисс между старым вариантом и тем пониманием темы, к которому пришел сейчас. Да и в поисковиках она где-то так числится.<br>
На данный момент научился получить список файлов, выбирать из него нужный и дальше его обрабатывать. Но есть небольшая проблема. Не совсем &quot;корректно&quot; передается выбранный файл. Точнее - есть несколько вариантов. Либо выдается предупреждение типа Нотис о пустом значении переменной, пока файл не выбран. Либо выдает фатал эрор после получения файла в начале его обработки типа не может вызвать мою функцию обработки <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Cannot redeclare trim_value() (previously declared in ...)</div></ol></div></div></div></div>, хотя содержание файла распечатывает нормально.<br>
Код ниже с вариантом ошибки Фатал эрор. Тут нет полного анализа файла на наличие @media и прочих нюансов. Но в данном варианте он тоже кое-что может и код короче. Важен принцип проявления ошибки или предупреждения, а лишняя информация не нужна. Ниже под кодом список мелких отличий при появлении предупреждения Нотис. Хотя есть вариант и с Варнигом, но смысл тот же. Файл назваал sovm.php<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#60;head&#62;</div><div class="code_line">&#60;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&#62;</div><div class="code_line">&#60;/head&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;?php</div><div class="code_line">if (isset($_POST[&#39;find_css&#39;]))</div><div class="code_line">{find_css(&#39;.&#39;);}</div><div class="code_line">&nbsp;</div><div class="code_line">?&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;!--- Кнопка для сканирования файлов ---&#62;</div><div class="code_line">&#60;form method=&quot;post&quot;&#62;</div><div class="code_line">&#60;input name=&quot;find_css&quot; type=&quot;submit&quot; value=&quot;Найти css в корневой папке&quot;&#62;</div><div class="code_line">&#60;/form&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;!--- Проверка нажатия кнопки для счетчика найденых файлов ---&#62;</div><div class="code_line">&#60;?php</div><div class="code_line">if (isset($_POST[&#39;find_css&#39;]))</div><div class="code_line">{calcul();}</div><div class="code_line">&nbsp;?&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;!--- Форма списка,куда должны передаваться результаты для дальнейшего выбора файлов &nbsp;---&#62;</div><div class="code_line">&#60;div class=&quot;form&quot;&#62;</div><div class="code_line">&#60;form action=&quot;&quot; method=&quot;post&quot;&#62;</div><div class="code_line">&#60;div style=&quot;width:100%; height:150px; overflow:auto; border:solid 1px #C3E4FE;&quot;&#62;</div><div class="code_line">&#60;?php </div><div class="code_line">if (isset($_POST[&#39;find_css&#39;]))</div><div class="code_line">{add_strok();} </div><div class="code_line">?&#62; &nbsp;&#60;!--- Вызов функции для добавления строк с проверкой нажатия кнопки ---&#62;</div><div class="code_line">&#60;/div&#62;</div><div class="code_line">&nbsp;&#60;input type=&quot;submit&quot; name=&quot;vibor_for_change&quot; value=&quot;Выполнить&quot;&#62;</div><div class="code_line">&#60;/form&#62;</div><div class="code_line">&#60;/div&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;?php</div><div class="code_line">// Калькулятор найденых файлов</div><div class="code_line">function calcul()</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp;global $matchV; global $pic_on; global $parth_on;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;$calc=count($parth_on); &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; echo &quot;Найдено $calc файла(ов)&quot;;</div><div class="code_line">&nbsp;&nbsp; }</div><div class="code_line">&nbsp;</div><div class="code_line">// Функция добавления строк в список файлов</div><div class="code_line">function add_strok()</div><div class="code_line">&nbsp;&nbsp; {</div><div class="code_line">&nbsp;global $pic_on; global $parth_on;</div><div class="code_line">&nbsp;&nbsp; for ($i=0; $i&#60;count($parth_on); $i++) &nbsp;// по идее должна была проверять количество строк (элементов массива и быть счетчиком)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;echo &quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;&#60;input type=\&quot;radio\&quot; name=\&quot;strok\&quot; value=\&quot;$parth_on[$i]\&quot; /&#62;</div><div class="code_line">&#60;div style=\&quot;display:grid; grid-template-columns:80% 20%; \&quot;&#62;</div><div class="code_line">&#60;div style=\&quot; grid-column: 1 / 1;\&quot;&#62;$parth_on[$i]&#60;/div&#62;</div><div class="code_line">&#60;div style=\&quot;grid-column: 2 / 2;\&quot;&#62;$pic_on[$i]&#60;/div&#62;&#60;/div&#62;&#60;br&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;} </div><div class="code_line">&nbsp;&nbsp; }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">// РАБОЧАЯ Функция для нахождения всех css</div><div class="code_line">function find_css($dir)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;global $pic_on; global $parth_on;</div><div class="code_line">&nbsp;&nbsp;foreach (glob($dir.DIRECTORY_SEPARATOR.&quot;*&quot;) as $annown)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; if (is_dir($annown))</div><div class="code_line">&nbsp;&nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (find_css($annown)) continue;</div><div class="code_line">&nbsp;&nbsp; &nbsp; }</div><div class="code_line">&nbsp;&nbsp; &nbsp; else</div><div class="code_line">&nbsp;&nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;$parth_annown[] =$annown;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;//echo $annown; echo &#39;&#60;br&#62;&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (preg_match_all(&quot;/^.*\.(css)$/i&quot;,$annown,$match, PREG_PATTERN_ORDER )) // выбираем все картинки</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $matchV=array_values($match[0]); // собираем картинки в массив</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;foreach ($matchV as $key=&#62;$css)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$parth_on[]=$css;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$pic_on[] =&#39;&#60;img src=&quot;./icon/icons8-css-26.png&quot; width=&quot;100%&quot; height=&quot;100%&quot; &#62;&#39;; &nbsp; // делаем превью с иконкой</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// echo $pic; echo &#39;&#60;br&#62;&#39;; // оставил для проверки</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div class="code_line">&nbsp;&nbsp; &nbsp; }</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">?&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;?--- &nbsp;тут начало всех форм по обработке селекторов &nbsp;---&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;?php</div><div class="code_line">&nbsp;</div><div class="code_line">if (isset($_POST[&#39;strok&#39;])) {$for_change=$_POST[&#39;strok&#39;]; get_file_for_change($for_change); } // Передача файла</div><div class="code_line">//elseif (empty($for_change)) {$for_change=&#39;&#39;;} &nbsp;// Этот вариант делал в надежде сделать &quot;заглушку&quot; для предупреждения Нотис</div><div class="code_line">// $for_change=$_POST[&#39;strok&#39;];</div><div class="code_line">&nbsp;</div><div class="code_line">function get_file_for_change()</div><div class="code_line">{ global $for_change; global $block; global $match; global $value; global $matchV; &nbsp;// Это список переменных из функций обработки селекторов</div><div class="code_line">//file_get_contents($for_change); </div><div class="code_line">&nbsp;&nbsp;$block=file_get_contents($for_change); &nbsp; </div><div class="code_line">//print_r($block); echo &#39;&#60;br&#62;&#39;; &nbsp;// Тут &nbsp;можно ппроверить корректность получения данных из выбранного файла</div><div class="code_line">// Ниже небольшой список функций некоторых обрезаний селекторов</div><div class="code_line">&nbsp;&nbsp; preg_match_all(&#39;/()(.*)(\b.*{)|(.)(.*)(,\s)/&#39;, $block, $match, PREG_PATTERN_ORDER);</div><div class="code_line">&nbsp;&nbsp; $matchV=array_values($match[0]);</div><div class="code_line">&nbsp;&nbsp; //print_r($matchV); echo &#39;&#60;br&#62;&#39;;</div><div class="code_line">&nbsp;&nbsp; function trim_value(&amp;$value)</div><div class="code_line">&nbsp;&nbsp;{global $for_change; global $block; global $match; global $value; global $matchV;</div><div class="code_line">&nbsp;&nbsp;$value = preg_replace(&#39;/(\.)(.*)(\.)/&#39;,&#39;.&#39;, $value); &nbsp;</div><div class="code_line">&nbsp;&nbsp; $value = preg_replace(&#39;/(\.)(.*)(\.)/&#39;,&#39;.&#39;, $value); &nbsp;</div><div class="code_line">&nbsp;&nbsp; $value=preg_replace(&#39;/,\s+/&#39;,&#39;&#39;, $value);</div><div class="code_line">&nbsp;&nbsp; $value = trim($value, &#39; {&#39;); </div><div class="code_line">&nbsp;&nbsp; }</div><div class="code_line">&nbsp;&nbsp; &nbsp;array_walk($matchV, &#39;trim_value&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;//print_r($matchV); echo &#39;&#60;br&#62;&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;/* &nbsp;preg_match_all(&#39;/(\.)(.*)(,\s+)/&#39;, $block, $match1, PREG_PATTERN_ORDER); &nbsp;*/</div><div class="code_line">&nbsp;&nbsp; &nbsp;preg_match_all(&#39;/(,\s.)(.*)(,)/&#39;, $block, $match1, PREG_PATTERN_ORDER);</div><div class="code_line">&nbsp;&nbsp; &nbsp;$matchV1=array_values($match1[0]);</div><div class="code_line">&nbsp;&nbsp; &nbsp;//print_r($matchV1); echo &#39;&#60;br&#62;&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;function trim_value1(&amp;$value)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;$value = preg_replace(&#39;/(,\s)(.*)(\.)/&#39;,&#39;.&#39;, $value); &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;$value = preg_replace(&#39;/(,)/&#39;,&#39;&#39;, $value); &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; array_walk($matchV1, &#39;trim_value1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; //print_r($matchV1); echo &#39;&#60;br&#62;&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;preg_match_all(&#39;/(.*,\s)(.*)(,\s+)/&#39;, $block, $match2, PREG_PATTERN_ORDER);</div><div class="code_line">&nbsp;&nbsp; $matchV2=array_values($match2[0]);</div><div class="code_line">&nbsp;&nbsp; //print_r($matchV2); echo &#39;&#60;br&#62;&#39;;</div><div class="code_line">&nbsp;&nbsp; function trim_value2(&amp;$value)</div><div class="code_line">&nbsp;&nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;$value = preg_replace(&#39;/(,)(.*)(,)/&#39;,&#39;&#39;, $value); &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; array_walk($matchV2, &#39;trim_value2&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;//print_r($matchV2); echo &#39;&#60;br&#62;&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;$mas1=array_merge($matchV, $matchV1, $matchV2);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;function trim_value3(&amp;$value)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;$value = preg_replace(&#39;/(\.)(.*)(\.)/&#39;,&#39;.&#39;, $value); &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; $value = preg_replace(&#39;/(\.)(.*)(\.)/&#39;,&#39;.&#39;, $value); &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;$value=preg_replace(&#39;/,\s+/&#39;,&#39;&#39;, $value);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;array_walk($mas1, &#39;trim_value3&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;$ubr=array_unique($mas1); // Удаление повторяющихся</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;$count=count($ubr);</div><div class="code_line">&nbsp;&nbsp; &nbsp;//print $count;echo &#39;--------&#60;br&#62;&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;$mas1id=preg_replace(&#39;/(\.)/&#39;, &#39;&#39;, $ubr);</div><div class="code_line">&nbsp;&nbsp; &nbsp;//print_r($mas1id); echo &#39;&#60;br&#62;&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">/* &nbsp;Функция для создания списка */</div><div class="code_line">&nbsp;&nbsp; &nbsp; function add_fields()</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;global $count;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;global $ubr;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;for ($i=0; $i&#60;$count; $i++)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo &quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#60;input type=\&quot;checkbox\&quot; name=\&quot;add_fields_class[]\&quot; value=\&quot;$ubr[$i]\&quot; &nbsp;/&#62;$ubr[$i] &#60;br&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } </div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">} </div><div class="code_line">?&#62;</div><div class="code_line">&#60;?--- Это форма, куда попадают отсортированные селекторы ---&#62;</div><div class="code_line">&#60;form action=&quot;sovm.php&quot; method=&quot;post&quot;&#62;</div><div class="code_line">&#60;div style=&quot;width:20%; height:100px; overflow:auto; border:solid 1px #C3E4FE;&quot;&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;?php // Сюда передаются данные после обрезания, обычно вызываю функцию add_fields();</div><div class="code_line">if (isset($_POST[&#39;strok&#39;])) </div><div class="code_line">{ get_file_for_change();</div><div class="code_line">//add_fields();</div><div class="code_line">} ?&#62;</div><div class="code_line">&#60;/div&#62;</div><div class="code_line">&nbsp;&#60;input type=&quot;submit&quot; name=&quot;formSubmit&quot; value=&quot;Выполнить&quot;&#62;</div><div class="code_line">&#60;/form&#62;</div></ol></div></div></div></div><br>
Если меняю передачу файла напрямую, тоесть вот так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">if (isset($_POST[&#39;strok&#39;])) {$for_change=$_POST[&#39;strok&#39;]; file_get_contents($for_change); }</div></ol></div></div></div></div><br>
Естественно убираю свою функцию get_file_for_change(&#036;for_change); (которую я и сделал то только для попытки убрать все эти предупрежддения), а в месте, куда передаются данные после обрезания оставляю вызов функции add_fields(); то остается предупреждение Нотис о пустой переменной <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Notice: Undefined variable: for_change ... on line 110</div><div class="code_line">Warning: file_get_contents(): Filename cannot be empty ... on line 110</div></ol></div></div></div></div><br>
Очень надеюсь на подсказку, где у меня ошибка. Хотя конечно же все эти нотисы и варнинги не критичны, но неприятны.]]></description>
        <author>D-G</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3797766</guid>
        <pubDate>Wed, 01 May 2019 14:56:36 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3797766</link>
        <description><![CDATA[D-G: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3797276'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2019-04-28T06:00:20+00:00">28.04.19, 06:00</time></span><div class='quote '>но у PHP есть кодстайл</div></div><br>
Слегка вступлюсь... Это видимо из-за меня, чтоб мне было понятней. Так-то Руслан постоянно говорит про чистоту кода, правила оформления, за что ему огромное спасибо. Возможно и переоцениваю свои достижения, но то, что я пробовал писать месяц назад и сейчас - две разные вещи, в том числе и в плане оформления. Вашу ссылку на кодстайл я тоже прочитал и понял насколько далек от &quot;идеала&quot; ((((( но буду учиться, надеюсь да получится в конце концов более менее.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3797276'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2019-04-28T06:00:20+00:00">28.04.19, 06:00</time></span><div class='quote '>что лучше попробовать самому, если всё ради обучения</div></div><br>
Все ради обучения. К сожалению пока нет возможности куда-нибудь поступить, или найти, скажем так учителя, который бы структурировано давал знания и натаскивал на примерах, вот и выдумываю себе задачи.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3797276'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2019-04-28T06:00:20+00:00">28.04.19, 06:00</time></span><div class='quote '>в мире PHP большинство подобных задач решается командой &quot;composer install название_пакета&quot;</div></div><br>
Почитал и про компосер, и понял, что мне туда ещё рано... Тут бы с более простыми вещами разобраться. Хотя вот чтение файла и составление списка освоил более менее. Чуток попозже вынесу на обсуждение для критики и замечаний то, что у меня получилось. А сейчас похоже буду новую тему начинать: чтение и составление списка файлов и каталогов с превью и прочим.]]></description>
        <author>D-G</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3797276</guid>
        <pubDate>Sun, 28 Apr 2019 06:00:20 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3797276</link>
        <description><![CDATA[Serafim: <strong class='tag-b'>Руслан</strong>... Кхм, ты конечно молодец, подсказываешь, и я не хочу показаться излишне придирчивым, но у PHP есть кодстайл, в твоём случае, PSR-2: <a class='tag-url' href='https://www.php-fig.org/psr/psr-2/' target='_blank'>https://www.php-fig.org/psr/psr-2/</a> А то от того что в сообщении #4 у меня глаза кровавыми слёзами кровоточат =) Про <strong class='tag-b'>D-G</strong> я не говорю, новичок же, но ты-то :-? <br>
<br>
А если говорить про основную задачу, то для 100% корректного разбора CSS требуется писать КС или КЗ парсер, можно самому, а можно взять готовый, например: <a class='tag-url' href='https://packagist.org/packages/sabberworm/php-css-parser' target='_blank'>https://packagist.org/packages/sabberworm/php-css-parser</a> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2019-04-28T06:03:20+00:00">28.04.19, 06:03</time></span></span><br>
P.S. Но, очевидно, что лучше попробовать самому, если всё ради обучения =) Просто на будущее хочу сообщить, что в мире PHP большинство подобных задач решается командой &quot;composer install название_пакета&quot; ;)]]></description>
        <author>Serafim</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796782</guid>
        <pubDate>Mon, 22 Apr 2019 12:51:50 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796782</link>
        <description><![CDATA[D-G: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796501'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2019-04-21T21:05:16+00:00">21.04.19, 21:05</time></span><div class='quote '>Возможно &quot;затык&quot; в том, что вы не ограничились инструментарием, показанным в сообщении №4 - function GetValueFromCSS().<br>
strpos(), strlen(), substr()</div></div><br>
Вообще-то я пробовал, и мое сообщение №5 тому пример. Но, во-первых, не захотел тут загромождать своими примерами, во-вторых возможно и правда слабо разобрался в теме, потому что и там не придумал как сделать это массово, циклом или ещё как-нибудь. А построчно занимает много места, как та же самая регулярка, и тот же trim.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796501'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2019-04-21T21:05:16+00:00">21.04.19, 21:05</time></span><div class='quote '>но trim, используемый после регулярки - выглядит несколько удивительно </div></div><br>
Да просто это единственный пример, который я нашел для понятной работы в массиве. Вернее с регуляркой тоже были примеры, но они мне показались более громоздкими, но главное так и не смог их применить в своих нуждах, о чем я и написал выше. А построчно не хочется делать, ведь это только в моем примере классов 5 штук, а если их больше? Да и для 5 тоже хотелось бы сократить код. Вы с Gonarh очень хорошо показали это в других темах.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796501'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2019-04-21T21:05:16+00:00">21.04.19, 21:05</time></span><div class='quote '>занят делами более насущными). :)</div></div><br>
Это нормально ))) а у меня как раз стало чуть больше времени )))<br>
Кстати, у меня таки остались кое-какие вопросы по сообщению №4. В том числе и что значит &quot;//&amp;&#036;&quot;?]]></description>
        <author>D-G</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796501</guid>
        <pubDate>Sun, 21 Apr 2019 21:05:16 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796501</link>
        <description><![CDATA[Руслан: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796156'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D&#045;G &#064; <time class="tag-quote__quoted-time" datetime="2019-04-21T10:03:04+00:00">21.04.19, 10:03</time></span><div class='quote '> Где ещё может быть затык?</div></div><br>
Возможно &quot;затык&quot; в том, что вы не ограничились инструментарием, показанным в <a class='tag-url' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796032' target='_blank'>сообщении №4</a> - function GetValueFromCSS().  <br>
strpos(), strlen(), substr()<br>
Разобравшись с принципом &quot;поиска требуемых значений&quot;, средствами ограниченного набора инструментов, станет значительно проще понимать принцип обработки строк другими инструментами. В частности не понадобится задействовать trim. <br>
<br>
Если вы считаете, что готовы перепрыгнуть сразу к использованию регулярных выражений, я не против(заметил Ваш практический успех в этом направлении  :good: ), но trim, используемый после регулярки - выглядит несколько удивительно (впрочем, извиняюсь, в смысл предложенного Вами кода я всё же не вникал, занят делами более насущными).  :)]]></description>
        <author>Руслан</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796156</guid>
        <pubDate>Sun, 21 Apr 2019 10:03:04 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796156</link>
        <description><![CDATA[D-G: Нашел функцию trim. По одной строке она удаляет замечательно. В руководстве написано, что удаляет и в массивах. Пример рабочий. Но когда я пробую вырезать у себя в коде, то выдает различного рода ошибки. Вот один из примеров как я пробовал сделать:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">function trim_value(&amp;$value)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;$value = trim($value, &#39; {&#39;);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">$mas=array(&#39;$mas[0][0]-$mas[0][6]&#39;);</div><div class="code_line">var_dump($mas); /* чисто для проверки, что выдает &nbsp;*/</div><div class="code_line">&nbsp;</div><div class="code_line">array_walk($mas, &#39;trim_value&#39;);</div><div class="code_line">var_dump($mas); &nbsp;/* тоже чисто для проверки, что выдает &nbsp;*/</div><div class="code_line">print $mas;</div></ol></div></div></div></div><br>
Пробовал без объявления &#036;mas массивом, ведь выше он у меня обрабатывается как массив, но тут не хочет.<br>
Где ещё может быть затык?<br>
И ещё разобрался частично с предыдущей функцией, вот так работает:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">$m1=preg_replace(&#39;/\b\s+{/&#39;, &#39;&#39;, $mas[0][2]); /* Это рабочий вариант, в первой строке перебирает классы, вторая выводит один обрезанный */ &nbsp; echo &#39;&#60;br&#62;&#39;;</div><div class="code_line">&nbsp;&nbsp; print($m1); &nbsp; echo &#39;&#60;br&#62;&#39;;</div></ol></div></div></div></div><br>
Но все равно не могу придумать как это сделать сразу в массиве или какую функцию написать, чтоб не перебирать построчно.]]></description>
        <author>D-G</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796129</guid>
        <pubDate>Sat, 20 Apr 2019 17:53:08 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796129</link>
        <description><![CDATA[D-G: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796084'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2019-04-19T17:27:01+00:00">19.04.19, 17:27</time></span><div class='quote '>Весьма мудро&#33; Всячески одобряю&#33;</div></div><br>
Спс, но у меня опять проблема, я все таки туговат. Не могу найти решение. Допустим есть файл со стилями style.css В котором какое-то количество классов, допустим: body, wrap1, wrap2, wraper3, wrapper4. Найти классы оказалось довольно легко. В начало поиска поставил точку, хотя это похоже пробел. В конце поиска поставил конец слова&#092;b точку, звездочку (две последние захватывают все пробелы) и фигурную скобку. И создал типа массив. Таким образом показывает именно классы, если первый ключ массива выбирать 0. Можно было бы убрать фигурную скобку и точку со звездочкой, но тогда в список попадают и свойства класса, соответственно путаются под ногами. Можно ли как-то показать поиску, что искать нужно до фигурной скобки не включая её, но учитывая, что она конец искомого шаблона? Да и пробелы хотелось бы убрать из вывода результата. Потому что вырезать у меня не вышло. Просто бывают ситуации, когда фигурная скобка стоит без пробела или через несколько пробелов после имени класса. Вот что у меня получилось:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;$block=file_get_contents(&#39;style.css&#39;);</div><div class="code_line">preg_match_all(&#39;/(\.)(.*)(\b.*{)/&#39;, $block, $mas, PREG_SET_ORDER);</div><div class="code_line">print preg_match_all(&#39;/(.)(.*)(\b.*{)/&#39;, $block, $mas); /* просто посчитать количество входов */</div><div class="code_line">&nbsp;&nbsp; echo &#39;&#60;br&#62;&#39;;</div><div class="code_line">print $mas[0][0]; /* Значение второй квадратной скобки будет именно класс, начиная с нуля &nbsp;*/</div><div class="code_line">&nbsp;&nbsp; echo &#39;&#60;br&#62;&#39;;</div><div class="code_line">$mas0=preg_replace(&#39;/\s\s++{/&#39;, &#39;&#39;, $mas[0][3]); /* Пробую вырезатьпробелы в конце и фигурную скобку */</div><div class="code_line">print $mas[0][3];</div><div class="code_line">&nbsp;&nbsp; echo &#39;&#60;br&#62;&#39;;</div><div class="code_line">&#60;form action=&quot;class.php&quot;&#62;</div><div class="code_line">&#60;input type=&quot;submit&quot; value=&quot;Отправить&quot; /&#62;</div><div class="code_line">&#60;select name=&quot;Blocks&quot; &#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#60;option &#62;блок1--&#62;&#60;?php echo $mas[0][0] ?&#62;&#60;/option&#62;&#60;!-- &nbsp;Передаю полученные данные --&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#60;option &#62;блок2--&#62;&#60;?php echo $mas[0][1] ?&#62;&#60;/option&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#60;option&#62;блок3--&#62;&#60;?php echo $mas[0][2] ?&#62;&#60;/option&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#60;option&#62;блок4--&#62;&#60;?php echo $mas[0][3] ?&#62;&#60;/option&#62;</div><div class="code_line">&#60;/select&#62;</div><div class="code_line">&#60;/form&#62;</div></ol></div></div></div></div>]]></description>
        <author>D-G</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796084</guid>
        <pubDate>Fri, 19 Apr 2019 17:27:01 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796084</link>
        <description><![CDATA[Руслан: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796082'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D&#045;G &#064; <time class="tag-quote__quoted-time" datetime="2019-04-19T16:43:24+00:00">19.04.19, 16:43</time></span><div class='quote '>вот и забыл прокоментировать весь процесс эксперимента</div></div><br>
От формулировки вопроса зависит многое... В том числе вероятность его прочтения кем-либо.  :) <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796082'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D&#045;G &#064; <time class="tag-quote__quoted-time" datetime="2019-04-19T16:43:24+00:00">19.04.19, 16:43</time></span><div class='quote '>Сейчас пробую научится поиску строк, знаков, символов.</div></div><br>
Весьма мудро&#33; Всячески одобряю&#33;  :good:]]></description>
        <author>Руслан</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796082</guid>
        <pubDate>Fri, 19 Apr 2019 16:43:24 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796082</link>
        <description><![CDATA[D-G: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796072'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2019-04-19T14:25:53+00:00">19.04.19, 14:25</time></span><div class='quote '>Респект за внимательность.</div></div><br>
Это случайность, на самом деле я сам очень невнимательный<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796072'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2019-04-19T14:25:53+00:00">19.04.19, 14:25</time></span><div class='quote '>Только зачем же было сюда этот эксперимент то выкладывать?</div></div><br>
Уже начинаю запутываться что держу в голове, а что где-то пишу, вот и забыл прокоментировать весь процесс эксперимента, кстати, подсмотрел в вашем примере.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796072'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2019-04-19T14:25:53+00:00">19.04.19, 14:25</time></span><div class='quote '>мысль изначально рассматривать .css как именованный массив - в принципе толковая, логичная</div></div><br>
Теперь мне это кажется лишним, но на будущее пригодится. Сейчас пробую научится поиску строк, знаков, символов.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796072'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2019-04-19T14:25:53+00:00">19.04.19, 14:25</time></span><div class='quote '>Кстати, вот здесь можно потестировать свою регулярку, наглядно посмотреть этапы работы: <a class='tag-url' href='https://regex101.com/' target='_blank'>https://regex101.com/</a></div></div><br>
Спс, ))) буду и с этим разбираться, хоть пока не понял как, но идея проверять он-лайн мне нравится. Совсем недавно на кодэ-пэйне html и css мучал.]]></description>
        <author>D-G</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796072</guid>
        <pubDate>Fri, 19 Apr 2019 14:25:53 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796072</link>
        <description><![CDATA[Руслан: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796048'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D&#045;G &#064; <time class="tag-quote__quoted-time" datetime="2019-04-19T07:31:39+00:00">19.04.19, 07:31</time></span><div class='quote '>стати, не знаете почему там в примере стоит &#39;&#036;mystring1&#39; хотя нигде не объявялялась такая переменная? Только &#39;&#036;mystring&#39; </div></div><br>
Очепятка в примере. Респект за внимательность.  :good: <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796048'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D&#045;G &#064; <time class="tag-quote__quoted-time" datetime="2019-04-19T07:31:39+00:00">19.04.19, 07:31</time></span><div class='quote '>Я ещё попробовал форму создать, так, ради эксперимента, что на что влияет.</div></div><br>
Окей, в принципе вполне метод уточнить-подразобраться что и как работает. Только зачем же было сюда этот эксперимент то выкладывать?  :-?   Он же лишен практического смысла в контексте поставленного вами вопроса - &quot;выборка из .css&quot;&#33; <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796048'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D&#045;G &#064; <time class="tag-quote__quoted-time" datetime="2019-04-19T07:31:39+00:00">19.04.19, 07:31</time></span><div class='quote '>Разве foreach не перебирает полученный массив?</div></div><br>
Вы перебираете массив переданных от клиента данных (&#036;_POST), а не файл.css  :D <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796048'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D&#045;G &#064; <time class="tag-quote__quoted-time" datetime="2019-04-19T07:31:39+00:00">19.04.19, 07:31</time></span><div class='quote '> Честно говоря с этим ещё определился. Хочу увидеть, что можно получить, потом решу.</div></div><br>
Не рассчитывайте, что за вас будут решать многочисленные хотелки &quot;посмотреть так&quot;, &quot;посмотреть эдак&quot;... ;) <br>
Хотя в целом, мысль изначально рассматривать .css как именованный массив - в принципе толковая, логичная. Нюансы есть на старте<span class="tag-color tag-color-named" data-value="gray" style="color: gray">(не помню я стандартной функции для такого рода разбора, разве что с &quot;регуляркой&quot;)</span>, а позже вылезет ещё больше нюансов. :whistle: <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796048'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D&#045;G &#064; <time class="tag-quote__quoted-time" datetime="2019-04-19T07:31:39+00:00">19.04.19, 07:31</time></span><div class='quote '>Про регулярные выражения читаю вот эту статью <a class='tag-url' href='http://www.php.su/articles/?cat=regexp&page=008' target='_blank'>http://www.php.su/articles/?cat=regexp&page=008</a><br>
Но хоть в оглавлении написано, что это пхп, в статье почему-то PERL. Разве это одно и то же? </div></div><br>
ПХП это не перл. Однако имеется такое понятие, как &quot;перл-совместимые регулярны выражения&quot;, PCRE. В процессе несомненно найдутся отличия между регулярками для PHP и регулярками же Perl.  :D <br>
<br>
Кстати, вот здесь можно потестировать свою регулярку, наглядно посмотреть этапы работы: <a class='tag-url' href='https://regex101.com/' target='_blank'>https://regex101.com/</a>]]></description>
        <author>Руслан</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796048</guid>
        <pubDate>Fri, 19 Apr 2019 07:31:39 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796048</link>
        <description><![CDATA[D-G: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796024'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2019-04-18T20:17:32+00:00">18.04.19, 20:17</time></span><div class='quote '>Строка 2.,3.:<br>
___перебор присланных от клиента данных //разве клиент что то отправил серверу?</div></div><br>
<br>
Я ещё попробовал форму создать, так, ради эксперимента, что на что влияет. При загрузке страницы выдает array(0) { } <br>
При вводе в поле &quot;mmm&quot; (просто набор букв) выдает Name1 mmm array(1) { [&quot;Name1&quot;]=&gt; string(3) &quot;mmm&quot; }<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796024'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2019-04-18T20:17:32+00:00">18.04.19, 20:17</time></span><div class='quote '>_опять отображение переменной &#036;block //зачем</div></div><br>
Думал, может после ввода &quot;mmm&quot; что-то изменится<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796024'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2019-04-18T20:17:32+00:00">18.04.19, 20:17</time></span><div class='quote '>отображение присланных клиентом данных (имен переменных и их значений) //разве клиент что-то отправил? И какое это имеет отношение к чтению файл.css ?</div></div><br>
Разве foreach не перебирает полученный массив? По идее массив должен получится из цсс файла.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796024'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2019-04-18T20:17:32+00:00">18.04.19, 20:17</time></span><div class='quote '> вам же не нужен весь этот массив. А только некоторые его части</div></div><br>
Честно говоря с этим ещё определился. Хочу увидеть, что можно получить, потом решу.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796024'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2019-04-18T20:17:32+00:00">18.04.19, 20:17</time></span><div class='quote '>Соответственно могу предложить искать требуемые части либо через регулярные выражения (сложно), либо через strpos</div></div><br>
Спс, буду, читать<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796032'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2019-04-19T00:35:05+00:00">19.04.19, 00:35</time></span><div class='quote '>Лично я не припомню метод, которым можно было бы одной строкой объяснить php интерпретатору &quot;ты имеешь дело с ассоциативным массивом, пожалуйста считай этот файл таковым&quot;. Вроде должно быть, но не припоминаю (разве что регуляркой разбить).</div></div><br>
Сперва с вашим первым коментом попробую разобраться и почитать про тот же <a class='tag-url' href='http://www.php.su/strpos' target='_blank'>http://www.php.su/strpos</a><br>
Кстати, не знаете почему там в примере стоит &#39;&#036;mystring1&#39; хотя нигде не объявялялась такая переменная? Только &#39;&#036;mystring&#39; <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2019-04-19T08:27:09+00:00">19.04.19, 08:27</time></span></span><br>
Получилось прикольно. Добавил в свой файл следующий код:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#60;?php</div><div class="code_line">&nbsp;$findme &nbsp; = &#39;body&#39;; /* Ищу первый класс */</div><div class="code_line">$pos = strpos($block, $findme);</div><div class="code_line">if ($pos === false) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo &quot;Строка &#39;$findme&#39; не найдена в строке &#39;$block&#39;&quot;;</div><div class="code_line">} else {</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo &quot;Строка &#39;$findme&#39; найдена в строке &#39;$block&#39;&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo &quot; в позиции $pos&quot;;</div><div class="code_line">}</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">$findme1 &nbsp; = &#39;.wrap&#39;; /* Ищу второй класс в новой позиции*/</div><div class="code_line">$pos1 = strpos($block, $findme1);</div><div class="code_line">if ($pos1 === false) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo &quot;Строка &#39;$findme1&#39; не найдена в строке &#39;$block&#39;&quot;;</div><div class="code_line">} else {</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo &quot;Строка &#39;$findme1&#39; найдена в строке &#39;$block&#39;&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo &quot; в позиции $pos1&quot;;</div><div class="code_line">}</div><div class="code_line">?&#62;</div><div class="code_line">&#60;!-- &nbsp;Создаю форму для составления списка --&#62;</div><div class="code_line">&#60;form action=&quot;class.php&quot;&#62;</div><div class="code_line">&#60;input type=&quot;submit&quot; value=&quot;Отправить&quot; /&#62;</div><div class="code_line">&#60;select name=&quot;Blocks&quot; &#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#60;option &#62;блок1--&#62;&#60;?php if ($pos === false) {echo &quot;&quot;;} else {echo &quot;$findme&quot;} ?&#62;&#60;/option&#62;&#60;!-- &nbsp;Передаю полученные данные --&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#60;option &#62;блок2--&#62;&#60;?php if ($pos1 === false) {echo &quot;&quot;;} else {echo &quot;$findme1&quot;} ?&#62;&#60;/option&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#60;option&#62;блок3&#60;/option&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#60;option&#62;блок4&#60;/option&#62;</div><div class="code_line">&#60;/select&#62;</div><div class="code_line">&#60;/form&#62;</div></ol></div></div></div></div><br>
Про регулярные выражения читаю вот эту статью <a class='tag-url' href='http://www.php.su/articles/?cat=regexp&page=008' target='_blank'>http://www.php.su/articles/?cat=regexp&page=008</a><br>
Но хоть в оглавлении написано, что это пхп, в статье почему-то PERL. Разве это одно и то же?]]></description>
        <author>D-G</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796032</guid>
        <pubDate>Fri, 19 Apr 2019 00:35:05 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796032</link>
        <description><![CDATA[Руслан: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796017'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D&#045;G &#064; <time class="tag-quote__quoted-time" datetime="2019-04-18T18:58:33+00:00">18.04.19, 18:58</time></span><div class='quote '>Только видимо это двумерный массив? </div></div><br>
Лично я не припомню метод, которым можно было бы одной строкой объяснить php интерпретатору &quot;ты имеешь дело с ассоциативным массивом, пожалуйста считай этот файл таковым&quot;. Вроде должно быть, но не припоминаю (разве что регуляркой разбить).  :scratch: <br>
<br>
Вариант решения можно уложить одну строку &quot;регулярки&quot; (при этом логическая сложность этой регулярки, в общем то вполне сопоставима с ниже приведенным кодом), либо перебирать вручную:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">//вернуть значение (класс\элемент=значение)</div><div class="code_line">function GetValueFromCSS($FileCSS, $ClassName, $ElementName)//&amp;$</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;$SearchClass_PosStart=strpos($FileCSS, $ClassName);//найти некоторый класс</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;$SearchClass_PosStart=strpos($FileCSS, &#39;{&#39;, $SearchClass_PosStart);//сдвинуть указатель на начало его данных</div><div class="code_line">&nbsp;&nbsp; &nbsp;$SearchClass_PosEnd=strpos($FileCSS, &#39;}&#39;, $SearchClass_PosStart);//найти конец данных класса (кому это надо, тот пусть и обрабатывает)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;$SearchData_PosStart=strpos($FileCSS, $ElementName.&#39;:&#39;, $SearchClass_PosStart);//найти значение &quot;переменной&quot;(чем по смыслу не переменная?), </div><div class="code_line">&nbsp;&nbsp; &nbsp;//пропустить найденый элемент, если он часть другого (что бы не найти &quot;background-color&quot; вместо &quot;color&quot;.</div><div class="code_line">&nbsp;&nbsp; &nbsp;while (($SearchData_PosStart&#60;&#62;0) and ($FileCSS{$SearchData_PosStart-1}&#60;&#62;&#39; &#39;) and ($FileCSS{$SearchData_PosStart-1}&#60;&#62;&quot;\t&quot;) and ($FileCSS{$SearchData_PosStart-1}&#60;&#62;&quot;;&quot;)) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;{$SearchData_PosStart=strpos($FileCSS, $ElementName.&#39;:&#39;, $SearchData_PosStart+2);}</div><div class="code_line">&nbsp;&nbsp; &nbsp;//сдвинуть указатель на начало данных</div><div class="code_line">&nbsp;&nbsp; &nbsp;$SearchData_PosStart+=strlen($ElementName);</div><div class="code_line">&nbsp;&nbsp; &nbsp;$SearchData_PosEnd=strpos($FileCSS,&#39;;&#39;, $SearchData_PosStart);</div><div class="code_line">&nbsp;&nbsp; &nbsp;return substr($FileCSS, $SearchData_PosStart, ($SearchData_PosEnd-$SearchData_PosStart));</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;$css_file=file_get_contents(&#39;style.css&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo GetValueFromCSS($css_file, &#39;ClassForUser&#39;, &#39;color&#39;);//&amp;$</div></ol></div></div></div></div><br>
<br>
и это ещё без обработки ошибок...  :whistle: <br>
<br>
Ладно, на счёт &quot;регулярок&quot;, мы в соседней теме обсуждали сохранение в .css, у вас вопрос возник, куда пропал &#036;3, вот куда он пропал, в некотором роде обратная функция, по сути без изменений, выводится как раз пропавший №3:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp;$css_file=file_get_contents(&#39;style.css&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;$Target1=&#39;ClassForUser&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;$Target2=&#39;color&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;preg_match(&#39;/(.*&#39;.$Target1.&#39;{)(.*[^}]\s&#39;.$Target2.&#39;:)(.*;)(.*)/Usi&#39;, $css_file, $tmp1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo $tmp1[3];</div></ol></div></div></div></div>]]></description>
        <author>Руслан</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796024</guid>
        <pubDate>Thu, 18 Apr 2019 20:17:32 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796024</link>
        <description><![CDATA[Руслан: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796017'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D&#045;G &#064; <time class="tag-quote__quoted-time" datetime="2019-04-18T18:58:33+00:00">18.04.19, 18:58</time></span><div class='quote '> echo &quot;&#036;block&quot;;<br>
 foreach (&#036;_POST as &#036;key=&gt;&#036;value)<br>
 echo &quot;&#036;block &#036;key &#036;value &quot;;<br>
 var_dump(&#036;_POST);</div></div><br>
<br>
Строка 1. Выдача клиенту содержимого php переменной &#036;block <span class="tag-color tag-color-named" data-value="blue" style="color: blue">//клиент изучает структуру файла.css</span><br>
Строка 2.,3.:<br>
___перебор присланных от клиента данных <span class="tag-color tag-color-named" data-value="blue" style="color: blue">//разве клиент что то отправил серверу?</span>  :-? <br>
___опять отображение переменной &#036;block <span class="tag-color tag-color-named" data-value="blue" style="color: blue">//зачем?</span>  :-? <br>
___отображение присланных клиентом данных (имен переменных и их значений) <span class="tag-color tag-color-named" data-value="blue" style="color: blue">//разве клиент что-то отправил? И какое это имеет отношение к чтению файл.css ?</span><br>
Строка 4. структурированное отображение данных, присланных клиентом... <span class="tag-color tag-color-named" data-value="blue" style="color: blue">//и опять - зачем?</span> :-? <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2019-04-18T20:25:09+00:00">18.04.19, 20:25</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414599&view=findpost&p=3796017'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D&#045;G &#064; <time class="tag-quote__quoted-time" datetime="2019-04-18T18:58:33+00:00">18.04.19, 18:58</time></span><div class='quote '>прав я или нет в том, что полученные данные можно представить в виде массива?</div></div><br>
В принципе да, но(пропускаю часть но), вам же не нужен весь этот массив. А только некоторые его части. Соответственно могу предложить искать требуемые части либо через регулярные выражения (сложно), либо через <a class='tag-url' href='http://www.php.su/strpos' target='_blank'>strpos</a>]]></description>
        <author>Руслан</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796017</guid>
        <pubDate>Thu, 18 Apr 2019 18:58:33 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3796017</link>
        <description><![CDATA[D-G: Решил зайти с другой стороны. Создал небольшой файл цсс с двумя классами main.css<br>
Попробовал из него вытащить данные вот так: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">$block=file_get_contents(&#39;main.css&#39;);</div></ol></div></div></div></div><br>
При этом по идее эти данные можно было бы представить в виде массива. Пробую его &quot;перебрать&quot; и вывести результаты, но ничего особого не дает, массив пуст<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;echo &quot;$block&quot;;</div><div class="code_line">&nbsp;foreach ($_POST as $key=&#62;$value)</div><div class="code_line">&nbsp;echo &quot;$block $key $value &quot;;</div><div class="code_line">&nbsp;var_dump($_POST);</div></ol></div></div></div></div><br>
Вот что пулучаю:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">body { background: red; background-image: ; } .wrap { background:yellow ; margin: auto ; width: 700px ; height: 400px ; z-index: 3 ; }array(0) { }</div></ol></div></div></div></div><br>
Может кто-то сказать, прав я или нет в том, что полученные данные можно представить в виде массива? Только видимо это двумерный массив?]]></description>
        <author>D-G</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3795535</guid>
        <pubDate>Sat, 13 Apr 2019 13:18:50 +0000</pubDate>
        <title>Создать список классов (селекторов) css или php (возможно с помощью file_get_contents)</title>
        <link>https://forum.sources.ru/index.php?showtopic=414599&amp;view=findpost&amp;p=3795535</link>
        <description><![CDATA[D-G: Продолжаю вопросы новичка. Есть три файла: index.php - файл шаблона, main.css - файл стилей, admin.php - файл для всяких настроек, которые будут применяться при загрузке индекс.пхп Причем файл индекс.пхп и мэйн.цсс могут меняться по содержанию, ну или допустим подставляться другие вместо них.<br>
Можно ли как-то вытащить из любого из этих двух файлов классы, ну а в последствии и id и составить из них список. Для простоты в индекс.пхп создал один класс, а в цсс задал для него стиль, в прочем и для боди тоже. Потом в админ.пхп пробовал разные варианты. Вот так сказать мои потуги:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#60;head&#62;</div><div class="code_line">&#60;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&#62;</div><div class="code_line">&#60;/head&#62;</div><div class="code_line">&#60;?php</div><div class="code_line">echo get_declared_classes(&#39;index.php&#39;); /* попытка №1 */</div><div class="code_line">print_r(get_class(&#39;index.php&#39;)); /* попытка №2 */</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; $block=file_get_contents(&#39;index.php&#39;); /* попытка №3 */</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; $block_SetDivClas1=&quot;&quot;; /* попытка получить имя хоть какого-то класса */</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; $block_SetDivClas2=&quot;&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; $block_SetDivClas3=&quot;&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; $block_SetDivClas4=&quot;&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">?&#62;</div><div class="code_line">&#60;!-- &nbsp;Создаю форму для составления списка --&#62;</div><div class="code_line">&#60;form action=&quot;admin.php&quot;&#62;</div><div class="code_line">&#60;input type=&quot;submit&quot; value=&quot;Отправить&quot; /&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&#60;select name=&quot;Blocks&quot; &#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#60;option &#62;&#60;?php echo $block_SetDivClas1 ?&#62;&#60;/option&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#60;option &#62;&#60;?php echo $block_SetDivClas2 ?&#62;&#60;/option&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#60;option&#62;блок3&#60;/option&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#60;option&#62;блок4&#60;/option&#62;</div><div class="code_line">&#60;/select&#62;</div><div class="code_line">&#60;/form&#62;</div></ol></div></div></div></div><br>
При этом выскакивают такие ошибки (предупреждения):<br>
Warning: get_declared_classes() expects exactly 0 parameters, 1 given line 7<br>
Warning: get_class() expects parameter 1 to be object, string given on line 8<br>
Нечто подобное и в случае с цсс файлом.<br>
Так вот, возможно ли сделать то, что я хочу, и как это все таки правильней сделать]]></description>
        <author>D-G</author>
        <category>PHP</category>
      </item>
	
      </channel>
      </rss>
	