ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Q] file_get_content и относительные пути (php)
  #1  
Старый 01.04.2009, 00:01
Аватар для draliokero
draliokero
Познающий
Регистрация: 14.03.2009
Сообщений: 86
Провел на форуме:
385811

Репутация: 12
По умолчанию [Q] file_get_content и относительные пути (php)

PHP код:
echo file_get_contents("http://www.google.ru"); 
Помогите нужно заменить все относительные пути в ссылках и в action’ах на прямые.

И еще вопрос: на странице, которую я получаю, через file_get_contents, есть каптча, если пути изменить на полные и отправить, пройдут ли обработку формы?
 
Ответить с цитированием

  #2  
Старый 01.04.2009, 00:22
Аватар для KaZ@NoVa
KaZ@NoVa
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
Провел на форуме:
3134311

Репутация: 1467


Отправить сообщение для KaZ@NoVa с помощью ICQ Отправить сообщение для KaZ@NoVa с помощью AIM Отправить сообщение для KaZ@NoVa с помощью Yahoo
По умолчанию

Заменить все относительные пути в ссылках и в action’ах на прямые можно с помощью регулярных выражений.

Цитата:
И еще вопрос: на странице, которую я получаю, через file_get_contents, есть каптча, если пути изменить на полные и отправить, пройдут ли обработку формы?
Если ссылки будут указывать именно на тот же скрипт-капчу, но просто с полным путём, то всё должно быть ок =)
 
Ответить с цитированием

  #3  
Старый 01.04.2009, 00:30
Аватар для draliokero
draliokero
Познающий
Регистрация: 14.03.2009
Сообщений: 86
Провел на форуме:
385811

Репутация: 12
По умолчанию

Допустим, получил страницу http://site.com/bla/bla/index.php
action у форм такой ../../file.php т.е. на два уровня выше,
сложно будет с регулярками сделать вида http://site.com/file.php :-(
 
Ответить с цитированием

  #4  
Старый 01.04.2009, 00:30
Аватар для Sharky
Sharky
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме:
3424739

Репутация: 921


Отправить сообщение для Sharky с помощью ICQ
По умолчанию

Цитата:
Если ссылки будут указывать именно на тот же скрипт-капчу, но просто с полным путём, то всё должно быть ок =)
а если проверка referer? тогда без подмены запроса не обойтись
 
Ответить с цитированием

  #5  
Старый 01.04.2009, 01:46
Аватар для draliokero
draliokero
Познающий
Регистрация: 14.03.2009
Сообщений: 86
Провел на форуме:
385811

Репутация: 12
По умолчанию

В общем, нашел функцию... помогите, пожалуйста, теперь с циклом, чтобы все ссылки привести в абсолютный вид и вывести страницу :-)
PHP код:
<?php
/**
 * Приведение ссылки к абсолютному URI
 * 
 * @param string $link ссылка (абсолютный URI, абсолютный путь на сайте, относительный путь)
 * @param string $base базовый URI (можно без "http://")
 * @return string абсолютный URI ссылки
 */
function uri2absolute($link$base)
{
     if (!
preg_match('~^(http://[^/?#]+)?([^?#]*)?(\?[^#]*)?(#.*)?$~i'$link '#'$matchesLink)) {
        return 
false;
         } 
    if (!empty(
$matchesLink[1])) {
        return 
$link;
         } 
    if (!
preg_match('~^(http://)?([^/?#]+)(/[^?#]*)?(\?[^#]*)?(#.*)?$~i'$base '#'$matchesBase)) {
        return 
false;
         } 
    if (empty(
$matchesLink[2])) {
        if (empty(
$matchesLink[3])) {
            return 
'http://' $matchesBase[2] . $matchesBase[3] . $matchesBase[4];;
             }
        return 
'http://' $matchesBase[2] . $matchesBase[3] . $matchesLink[3];
         }
    
$pathLink explode('/'$matchesLink[2]);
     if (
$pathLink[0] == '') {
        return 
'http://' $matchesBase[2] . $matchesLink[2] . $matchesLink[3];
         }
    
$pathBase explode('/'preg_replace('~^/~'''$matchesBase[3]));
     if (
sizeOf($pathBase) > 0) {
        
array_pop($pathBase);
         }
    foreach (
$pathLink as $p) {
        if (
$p == '.') {
            continue;
             } elseif (
$p == '..') {
            if (
sizeOf($pathBase) > 0) {
                
array_pop($pathBase);
                 } 
            } else {
            
array_push($pathBase$p);
             }
        }
    return 
'http://' $matchesBase[2] . '/' implode('/'$pathBase) . $matchesLink[3];
    }
    
$url "http://www.google.ru/";
$content file_get_contents($url);
Код:
preg_match_all("#src=['\"]([^'\"].*\.(gif|jpg|jpeg|png|js))#iU", $content, $images);
...........

Последний раз редактировалось draliokero; 01.04.2009 в 04:57..
 
Ответить с цитированием

  #6  
Старый 02.04.2009, 06:44
Аватар для draliokero
draliokero
Познающий
Регистрация: 14.03.2009
Сообщений: 86
Провел на форуме:
385811

Репутация: 12
По умолчанию

Может кто нибудь помочь? :-)
 
Ответить с цитированием

  #7  
Старый 02.04.2009, 08:20
Аватар для .:EnoT:.
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

в помойку выкинь эти функции)

Проще всего заставить браузер грузить картинки, css и т.д. с другого сайта путём html

Вставляешь вот этот код и любуешься (желательно после <head>, но можно и в самом начале).
Код:
<base href="http://vkontakte.ru/" />
Но ajax у тебя работать не будет, надеюсь сам знаешь почему

Ну или в крайнем случае реплейсом меняй ссылки. что-то типо того:

PHP код:
$str file_get_contents('http://vkontakte.ru/');
$str preg_replace('#(href|src)=["\'][http://]?([^:]*)["\']#Ui''\\1="http://vkontakte.ru/\\2"'$str);
echo 
$str
 
Ответить с цитированием

  #8  
Старый 02.04.2009, 15:44
Аватар для draliokero
draliokero
Познающий
Регистрация: 14.03.2009
Сообщений: 86
Провел на форуме:
385811

Репутация: 12
По умолчанию

.:EnoT:., спс, самое простое решение будет, тупо дописывать <base href="" />
 
Ответить с цитированием

  #9  
Старый 03.04.2009, 05:12
Аватар для REDz
REDz
Новичок
Регистрация: 12.12.2008
Сообщений: 27
Провел на форуме:
76822

Репутация: 8
По умолчанию

Чет не допонял, автор те нужен тип граб? Так это он делается другим способом...
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Books PSalm69 Избранное 248 27.10.2009 04:52
На PHP, как на "Новые ворота"... Mertvii-Listopad Чужие Статьи 7 18.09.2006 12:42
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ