Непонятные- невидимые символы - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Sun, 12 Jan 2025 15:57:15 +0300 Результат:<br> <pre class="prettyprint"> Метод&#58; GET = http&#58;//www.google.com/webhp?hl=ru array(10) { &#91;&quot;Host&quot;]=&gt; string(14) &quot;www.google.com&quot; &#91;&quot;User-Agent&quot;]=&gt; string(85) &quot;Mozilla/5.0 (X11; Linux i686; rv&#58;2.0.1) Gecko/20100101 Firefox/4.0.1 WebMoney Advisor&quot; &#91;&quot;Accept&quot;]=&gt; string(63) &quot;text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&quot; &#91;&quot;Accept-Language&quot;]=&gt; string(35) &quot;ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3&quot; &#91;&quot;Accept-Encoding&quot;]=&gt; string(13) &quot;gzip, deflate&quot; &#91;&quot;Accept-Charset&quot;]=&gt; string(32) &quot;windows-1251,utf-8;q=0.7,*;q=0.7&quot; &#91;&quot;DNT&quot;]=&gt; string(1) &quot;1&quot; &#91;&quot;Proxy-Connection&quot;]=&gt; string(10) &quot;keep-alive&quot; &#91;&quot;Referer&quot;]=&gt; string(177) &quot;http&#58;//www.google.com/search?client=ubuntu&amp;channel=fs&amp;q=%D0%B7%D0%B0%D0%B3%D0%B0%D0%BB%D0%BE%D0%B2%D0%BA%D0%B8+%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%D0%B0&amp;ie=utf-8&amp;oe=utf-8&quot; &#91;&quot;Cookie&quot;]=&gt; string(374) &quot;PREF=ID=d9745f3985c8c5ba&#58;U=102ef765f0eee1b8&#58;FF=0&#58;TM=1309792032&#58;LM=1309793225&#58;S=lsz5yWFvjnmd4N0n; NID=48=UVmwl_WDH93pzMCiw4JEeyuvNdJHNxMHMj19zzk_rNoLoBP708JPIgJVuNcMuEcU8Wbe2lT2vw1aJ2xZgdlTn-mRxGwnnrcyhBxwoIBhAzfl1Cqj1LWwpnKjSZJdXE1N; W6D=v4=0&#58;ds=0&#58;w=167&#58;l=-4439&#58;q=0; SID=DQAAAKAAAABxS8CmBzbaGDmLoi-Tzrz5ZBEDEw68R97P3toeXZ_jF6D62fg-1et25LOLXQKEQPYR9OOOVKRMbVr-C6OVZ_Wuui2PbAF&quot; } </pre> https://visavi.net/topics/22943/389204 Непонятные- невидимые символы T-S Thu, 07 Jul 2011 21:52:03 +0400 Сообщения https://visavi.net/topics/22943/389204 <pre class="prettyprint">&lt;?php $str = &#039;GET http&#58;//www.google.com/webhp?hl=ru HTTP/1.1 Host&#58; www.google.com User-Agent&#58; Mozilla/5.0 (X11; Linux i686; rv&#58;2.0.1) Gecko/20100101 Firefox/4.0.1 WebMoney Advisor Accept&#58; text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language&#58; ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding&#58; gzip, deflate Accept-Charset&#58; windows-1251,utf-8;q=0.7,*;q=0.7 DNT&#58; 1 Proxy-Connection&#58; keep-alive Referer&#58; http&#58;//www.google.com/search?client=ubuntu&amp;channel=fs&amp;q=%D0%B7%D0%B0%D0%B3%D0%B0%D0%BB%D0%BE%D0%B2%D0%BA%D0%B8+%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%D0%B0&amp;ie=utf-8&amp;oe=utf-8 Cookie&#58; PREF=ID=d9745f3985c8c5ba&#58;U=102ef765f0eee1b8&#58;FF=0&#58;TM=1309792032&#58;LM=1309793225&#58;S=lsz5yWFvjnmd4N0n; NID=48=UVmwl_WDH93pzMCiw4JEeyuvNdJHNxMHMj19zzk_rNoLoBP708JPIgJVuNcMuEcU8Wbe2lT2vw1aJ2xZgdlTn-mRxGwnnrcyhBxwoIBhAzfl1Cqj1LWwpnKjSZJdXE1N; W6D=v4=0&#58;ds=0&#58;w=167&#58;l=-4439&#58;q=0; SID=DQAAAKAAAABxS8CmBzbaGDmLoi-Tzrz5ZBEDEw68R97P3toeXZ_jF6D62fg-1et25LOLXQKEQPYR9OOOVKRMbVr-C6OVZ_Wuui2PbAF&#039;; //Что если попробовать так. $h = explode(&quot;\n&quot;, $str); $h&#91;0] = explode(&#039; &#039;, $h&#91;0]); $c = count($h); $header = array(); for ($i = 1; $i&lt;$c; $i++) { $h&#91;$i] = explode(&#039;&#58; &#039;, $h&#91;$i]); $key = $h&#91;$i]&#91;0]; $val = $h&#91;$i]&#91;1]; $header&#91;$key] = trim($val); } echo &#039;Метод&#58; &#039; . $h&#91;0]&#91;0] . &#039; = &#039; .$h&#91;0]&#91;1] . &quot;\n&quot;; // POST/GET var_dump($header); </pre> https://visavi.net/topics/22943/389203 Непонятные- невидимые символы T-S Thu, 07 Jul 2011 21:49:38 +0400 Сообщения https://visavi.net/topics/22943/389203 2. <strong>T-S</strong>, Не использую массив $_SERVER так-как запускается из консоли и биндует порт.<br> Вот пример заголовков:<br> <pre class="prettyprint"> GET http&#58;//www.google.com/webhp?hl=ru HTTP/1.1 Host&#58; www.google.com User-Agent&#58; Mozilla/5.0 (X11; Linux i686; rv&#58;2.0.1) Gecko/20100101 Firefox/4.0.1 WebMoney Advisor Accept&#58; text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language&#58; ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding&#58; gzip, deflate Accept-Charset&#58; windows-1251,utf-8;q=0.7,*;q=0.7 DNT&#58; 1 Proxy-Connection&#58; keep-alive Referer&#58; http&#58;//www.google.com/search?client=ubuntu&amp;channel=fs&amp;q=%D0%B7%D0%B0%D0%B3%D0%B0%D0%BB%D0%BE%D0%B2%D0%BA%D0%B8+%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%D0%B0&amp;ie=utf-8&amp;oe=utf-8 Cookie&#58; PREF=ID=d9745f3985c8c5ba&#58;U=102ef765f0eee1b8&#58;FF=0&#58;TM=1309792032&#58;LM=1309793225&#58;S=lsz5yWFvjnmd4N0n; NID=48=UVmwl_WDH93pzMCiw4JEeyuvNdJHNxMHMj19zzk_rNoLoBP708JPIgJVuNcMuEcU8Wbe2lT2vw1aJ2xZgdlTn-mRxGwnnrcyhBxwoIBhAzfl1Cqj1LWwpnKjSZJdXE1N; W6D=v4=0&#58;ds=0&#58;w=167&#58;l=-4439&#58;q=0; SID=DQAAAKAAAABxS8CmBzbaGDmLoi-Tzrz5ZBEDEw68R97P3toeXZ_jF6D62fg-1et25LOLXQKEQPYR9OOOVKRMbVr-C6OVZ_Wuui2PbAF </pre> Из этого мне нужно достать GET (он может быть POST и CONNECT), HOST, изменить браузер и Proxy-Connection: keep-alive на Connection: Close<br> Proxy-Connection: может и не быть или может быть просто Connection, а строка нужна в любом случае.<br> <br> Кривость кода порадило многократное переписывание его. https://visavi.net/topics/22943/389145 Непонятные- невидимые символы Андрей Thu, 07 Jul 2011 19:23:23 +0400 Сообщения https://visavi.net/topics/22943/389145 1) Объясни почему ты используешь регулярку?<br> Почему ты не используешь массив $_SERVER<br> Дай пример входа $str.<br> Я так понял там по строкам разбиты заголовки но все же. и зачем ты бросаешь мод i он же не нужен, только увеличивает время выполнения.<br> далее:<br> preg_match(&#039;/Host: (.*)\n/i&#039;,$str,$matches);<br> \n не обязателен если ты не используешь мод s.<br> Убери его и оптимизируется код.<br> Все же просил не придираться к коду но я не удержался извини.<br> Если ты уверен что проблема не в кодировке тогда не знаю но могу сказать точно что и не в регулярке. а хотя пробелы в регулярках замени на \s (Пустые символы)<br> Да и мой тебе совет присмотрись к preg_match_all https://visavi.net/topics/22943/388706 Непонятные- невидимые символы T-S Wed, 06 Jul 2011 20:24:45 +0400 Сообщения https://visavi.net/topics/22943/388706 <pre class="prettyprint">&lt;?php function parseQuery($str){ preg_match(&#039;/Host&#58; (.*)\n/i&#039;,$str,$matches); $res&#91;&#039;host&#039;]=$matches&#91;1]; $host=$matches&#91;1]; preg_match(&#039;/&#58;( .*)/i&#039;,$res&#91;&#039;host&#039;],$matches); &#64;$res&#91;&#039;port&#039;]=$matches&#91;1]; preg_match(&#039;/GET (.*) /i&#039;,$str,$matches); if(isset($matches&#91;1]) &amp;&amp; $matches&#91;1]!=&#039;&#039;){ $res&#91;&#039;tmpport&#039;]=80; } preg_match(&#039;/POST (.*) /i&#039;,$str,$matches); if(isset($matches&#91;1]) &amp;&amp; $matches&#91;1]!=&#039;&#039;){ $res&#91;&#039;tmpport&#039;]=80; } preg_match(&#039;/CONNECT (.*) /i&#039;,$str,$matches); if(isset($matches&#91;1]) &amp;&amp; $matches&#91;1]!=&#039;&#039;){ if(!isset($res&#91;&#039;port&#039;]) || $res&#91;&#039;port&#039;]==&#039;&#039;){ $res&#91;&#039;port&#039;]=433; } } if(!isset($res&#91;&#039;port&#039;]) || $res&#91;&#039;port&#039;]==&#039;&#039;){ $res&#91;&#039;port&#039;]=$res&#91;&#039;tmpport&#039;]; } //$res&#91;&#039;host&#039;]=preg_replace(&#039;/(.*)&#58;/i&#039;,&#039;\1&#039;,$res&#91;&#039;host&#039;]); preg_match(&#039;/&#91;GET|POST|CONNECT] (.*) HTTP/Ui&#039;,$str,$url); return GetUrl(trim($url&#91;1]),&#039;&#039;,1); //return getSite($res&#91;&#039;host&#039;],$res&#91;&#039;port&#039;],$str); } ?&gt; </pre> Функции передаются заголовки браузера, после обработки этой функцией, появляются разные non print символы.<br> Например если не обработать переменную $url[1] функцией trim(),то сокет выдаёт ошибку что адрес не найден, и так со всеми переменными.<br> Скрипт в utf-8.<br> Кривость функции на данный момент не важна.<br> <br> <em><span style="font-size:x-small">Добавлено через 03:01 сек.</span></em><br> Браузер посылает в загаловках только латиницу, думаю с кодировкой это не связано, скорей всего строки портят регулярки (обрезают лишние байты) модификатор u не помогает.<br> <br> <em><span style="font-size:x-small">Добавлено через 06:58 сек.</span></em><br> GetUrl()- запрашивает через curl.<br> getSite()- через сокеты.<br> Обеим функциям мешают эти non print символы. https://visavi.net/topics/22943/387504 Непонятные- невидимые символы Андрей Mon, 04 Jul 2011 18:05:22 +0400 Сообщения https://visavi.net/topics/22943/387504