За последние 24 часа нас посетили 18428 программистов и 1607 роботов. Сейчас ищут 1806 программистов ...

изменение ссылки с помосшью str_replace

Тема в разделе "Сделайте за меня", создана пользователем baltipterix, 29 апр 2016.

  1. baltipterix

    baltipterix Новичок

    С нами с:
    28 апр 2016
    Сообщения:
    5
    Симпатии:
    0
    проблемаю....
    carcom.ee/test/
    при переходе/клике на опр. ТАЧИЛУ
    попадаем на
    www.auto24.ee/api/d79baf4ceba5593fe6a7bb6e32f5f9a0/details/ ************************* language=RUS
    при этом покидаем нашальный серв,
    и надо чтобы вместо - /d79baf4ceba5593fe6a7bb6e32f5f9a0/ - адрес был с - /carcom/

    доступа к .html коду зeркала нет.
    оперыруем лишь сцылочками.

    str_replace как тут может помочь



    пример
    переход c
    http://carcom.ee/test/ pervaja ТАЧА
    на
    http://www.auto24.ee/api/d79baf4ceb...0/details/d4a552d6d9767b406088l6?language=RUS
    заменить на
    http://www.auto24.ee/api/carcom/details/d4a552d6d9767b406088l6?language=RUS
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    PHP:
    1. str_replace("/api/d79baf4ceba5593fe6a7bb6e32f5f9a0/details/", "/api/carcom/details", "http://www.auto24.ee/api/d79baf4ceba5593fe6a7bb6e32f5f9a0/details/d4a552d6d9767b406088l6?language=RUS");
     
  3. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    PHP:
    1. $url = 'http://www.auto24.ee/api/d79baf4ceba5593fe6a7bb6e32f5f9a0/details/d4a552d6d9767b406088l6?language=RUS';
    2. echo preg_replace("/api\/[^\/]+/i","api/carcom", $url);
     
  4. baltipterix

    baltipterix Новичок

    С нами с:
    28 апр 2016
    Сообщения:
    5
    Симпатии:
    0
    ne rabotaet
     
  5. Yevgeni

    Yevgeni Активный пользователь

    С нами с:
    29 апр 2016
    Сообщения:
    73
    Симпатии:
    1

    Этот вариант с виду крут, но почему-то не работает =((
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @baltipterix может ты не знаешь как это применить?
     
  7. baltipterix

    baltipterix Новичок

    С нами с:
    28 апр 2016
    Сообщения:
    5
    Симпатии:
    0
    Я пытаюсь применить это в редакторе wordpress... Но может быть тут есть какой-то подвох?
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Если редактируешь код, то не должно быть подвоха.
    Покажи больше кода, откуда берутся ссылка и как ты её заменяешь с помощью PHP.
     
  9. Yevgeni

    Yevgeni Активный пользователь

    С нами с:
    29 апр 2016
    Сообщения:
    73
    Симпатии:
    1
    Вот собственно код...
    Код (Text):
    1. [wp-file-get-contents url="http://www.auto24.ee/api/d79baf4ceba5593fe6a7bb6e32f5f9a0?language=RUS"]
    2.  
    3. [php]$url = 'http://www.auto24.ee/api/d79baf4ceba5593fe6a7bb6e32f5f9a0/details/d4a552d6d9767b406088l6?language=RUS';
    4. echo preg_replace("/api\/[^\/]+/i","api/carcom", $url);[/php]
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Код не выполняется как PHP? Вместо результата выдаёт PHP код?
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Воровство контента
     
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @igordata там же слово в api в url есть или тебя не проведёшь этим? :D
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    при чем тут апи, если он ссылки подменяет? С какой целью подменяются ссылки в готовом html? Я правда нихера не понял.
     
  14. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Возмсожно это такой white label сервис через попу, все его ссылки работают и ходят через API. Там реально разный результат по тем ссылка что он дал.
     
  15. Yevgeni

    Yevgeni Активный пользователь

    С нами с:
    29 апр 2016
    Сообщения:
    73
    Симпатии:
    1
    На самом деле да, функция не работает, а выдает просто на странице "http://www.auto24.ee/api/carcom/d79...0/details/e2c84c47e1e156406093l6?language=RUS".

    У меня получается вот такой PHP код, по идее в нем должны быть две функции
    1) file_get_contents() - для вывода зеркала автомобилей на сайт
    2) substr_replace - для замены хеш тега после /api/, чтобы автомобиль открывался на собственном сервере.

    Код (Text):
    1. [php]$homepage = file_get_contents('http://www.auto24.ee/api/d79baf4ceba5593fe6a7bb6e32f5f9a0');
    2. echo $homepage;
    3. $lookingBy = "api";
    4. $url = 'http://www.auto24.ee/api/d79baf4ceba5593fe6a7bb6e32f5f9a0/details/e2c84c47e1e156406093l6?language=RUS';
    5. $url = substr_replace ( $url , "/carcom/" , strpos($url,$lookingBy )+strlen($lookingBy ) , 1);
    6. echo $url;[/php]
    Но он не срабатывает... Может есть предположение, в чем может быть проблема ?
     
  16. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Там в wordpress есть как минимум два редактора, один для постов, второй для файлов.
    Надо файлы php редактировать в wordpress. Хотя я уже запутался, что за задача.
     
  17. Yevgeni

    Yevgeni Активный пользователь

    С нами с:
    29 апр 2016
    Сообщения:
    73
    Симпатии:
    1
    Я попробую объяснить.
    На этой странице (carcom) стоит зеркало с другого сайта, отображается хорошо, даже отлично, но если кликнуть на автомобиль, то происходит переадресация на первоначальный источник. То есть нужно как-то в этой ссылке изменить хеш на "carcom" после api/ - http://www.auto24.ee/api/d79baf4ceba5593fe6a7bb6e32f5f9a0/details/e2c84c47e1e156406093l6?language=RUS.

    Вот, и в связи с этим вопрос, можно ли это как-то реализовать? :)
     
  18. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Вот я давал код https://php.ru/forum/threads/izmenenie-ssylki-s-pomosshju-str_replace.58247/#post-468068
    Почитай документацию по этой ссылке, там где ей нужно передать текст в котором нужно что-то заменить ты в этот аргумент передай html код с не правильными ссылками и функция уже вернёт код с нужными ссылками.
     
  19. Yevgeni

    Yevgeni Активный пользователь

    С нами с:
    29 апр 2016
    Сообщения:
    73
    Симпатии:
    1
    Да вот вроде бы все хорошо, никаких ошибок, но не работает вообще никак... Вот как выглядит код:
    PHP:
    1. [php]$homepage = file_get_contents('http://www.auto24.ee/api/d79baf4ceba5593fe6a7bb6e32f5f9a0');
    2. echo $homepage;
    3. str_replace("/api/d79baf4ceba5593fe6a7bb6e32f5f9a0/details/", "/api/carcom/details", "http://www.auto24.ee/api/d79baf4ceba5593fe6a7bb6e32f5f9a0/details/41449f6c486f3e406162l6");
    [/php]
     
  20. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    PHP:
    1. $homepage = file_get_contents('http://www.auto24.ee/api/d79baf4ceba5593fe6a7bb6e32f5f9a0');
    2. echo str_replace("/api/d79baf4ceba5593fe6a7bb6e32f5f9a0/details/", "/api/carcom/details", $homepage);
     
  21. CoolKid

    CoolKid Активный пользователь

    С нами с:
    24 сен 2014
    Сообщения:
    33
    Симпатии:
    5
    Замена строки работает по формуле
    str_replace('ЧТО', 'НА ЧТО', 'В ЧЕМ');
    Следовательно, выглядеть это должно примерно вот так:
    PHP:
    1. $htmlContent = file_get_contents('http://www.auto24.ee/api/d79baf4ceba5593fe6a7bb6e32f5f9a0');
    2. $htmlContent = str_replace("/api/d79baf4ceba5593fe6a7bb6e32f5f9a0/details/", "/api/carcom/details", $htmlContent);
    3. echo $htmlContent;
    Проверил в онлайне на http://phpfiddle.org/ - все работает :)
     
  22. Yevgeni

    Yevgeni Активный пользователь

    С нами с:
    29 апр 2016
    Сообщения:
    73
    Симпатии:
    1
    ЕЕЕ спасибо друг!!! Работает!!!! Правда слэш после details ушел по делам, но это ерунда, ТЫ КРУТ!!!! СПАСИБО ЕЩЕ РАЗ!!!! :)))))))))))))))))))))
    --- Добавлено ---
    Да, все отлично работает, СПАСИБО!!!! :))))))))
     
  23. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    "зеркало сайта". А как оригинальный сайт относится к этому, и зачем зеркалу подменять ссылки обратно?
     
  24. CoolKid

    CoolKid Активный пользователь

    С нами с:
    24 сен 2014
    Сообщения:
    33
    Симпатии:
    5
    @igordata, а я смотрю тебя интересует только то, чтобы помощь по написанию скриптов не была бесплатной и не дай бог помогли со скриптами, которые потенциально воруют какой-то там контент :)
     
  25. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    да, это так. Ненавижу воров и халявщиков. Это плохо?
     
    mr.akv нравится это.