За последние 24 часа нас посетили 22399 программистов и 1141 робот. Сейчас ищут 717 программистов ...

Заменитель б/д

Тема в разделе "Сделайте за меня", создана пользователем CreaVit, 8 ноя 2018.

  1. CreaVit

    CreaVit Новичок

    С нами с:
    8 ноя 2018
    Сообщения:
    5
    Симпатии:
    0
    Народ, есть код, который раньше для WP перезаменял имя файла, 5-ть лет назад он работал, а сейчас нет.
    Посмотрите плз и подскажите что не так?

    PHP:
    1. <?php
    2.  
    3. $sql_file = 'vip-remont.sql';
    4. $replace_from = 'site.ru';
    5. $replace_to = 'wpsite.loc';
    6.  
    7. $ff = file_get_contents($sql_file);
    8. $ff = str_replace($replace_from, $replace_to, $ff);
    9.  
    10. $count = 0;
    11.  
    12. function serializereplace($matches)
    13. {
    14.     global $replace_to;
    15.     global $count;
    16.     $found = $matches[0];
    17.  
    18.     if (strpos($found, $replace_to)!==FALSE) {
    19.     preg_match('/"(.*)"/', $found, $out);
    20.  
    21.     $count++;
    22.  
    23.     return serialize($out[1]);
    24.     } else {
    25.     return $found;
    26.     }
    27. }
    28.  
    29.             '|s\:[0-9]*\:".*?"\;|',
    30.             "serializereplace",
    31.             $ff);
    32.  
    33. file_put_contents('out.sql', $ff);
    34.  
    35. echo $count. " items replaced.";
    36.  
    37. ?>
     
    #1 CreaVit, 8 ноя 2018
    Последнее редактирование модератором: 8 ноя 2018
  2. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Регулярку вот эту вот перепроверь, как она у тебя отрабатывает именно в php
    PHP:
    1. '|s\:[0-9]*\:".*?"\;|'
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Ошибки? Сообщения? Что-то есть?
     
  4. CreaVit

    CreaVit Новичок

    С нами с:
    8 ноя 2018
    Сообщения:
    5
    Симпатии:
    0
    Я не понимаю пхп, поэтому и обратился сюда(

    Ну оно пишет "0 items replaced", а должно перезаписывать ссылки.
     
  5. CreaVit

    CreaVit Новичок

    С нами с:
    8 ноя 2018
    Сообщения:
    5
    Симпатии:
    0
    ааапп
     
  6. CreaVit

    CreaVit Новичок

    С нами с:
    8 ноя 2018
    Сообщения:
    5
    Симпатии:
    0
  7. CreaVit

    CreaVit Новичок

    С нами с:
    8 ноя 2018
    Сообщения:
    5
    Симпатии:
    0
    актуально епта
     
  8. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    тебе предложили выложить тексты ошибок - ты это проигнорил
    уже бы почти год назад всё решил)
     
  9. Emilien

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

    С нами с:
    30 июн 2016
    Сообщения:
    246
    Симпатии:
    156
    Так могло и не быть никаких ошибок. Регулярка ищет что-то такое:
    Код (Text):
    1.  s:7:"site.ru";
    А если в том дампе было экранирование бекслешем, то регулярка уже не найдёт совпадений.
    Код (Text):
    1.  s:7:\"site.ru\";