За последние 24 часа нас посетил 95201 программист и 3012 роботов. Сейчас ищет 1281 программист ...

Нужна помощь

Тема в разделе "PHP для новичков", создана пользователем Svoloch_196, 23 дек 2013.

  1. Svoloch_196

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

    С нами с:
    28 янв 2012
    Сообщения:
    227
    Симпатии:
    0
    Всем привет подскажите в 1 вопросе использую распаковку zip архива через php
    Вот сам код
    Код (Text):
    1.                     $zip = new ZipArchive;
    2.                     $res = $zip->open('site.zip');
    3.                     if ($res === TRUE) {
    4.                         $zip->extractTo('../ok/');
    5.                         $zip->close();
    Вот в чём вопрос у меня в архиве "site.zip" есть файл dr.php в ней строчка имеется

    Мне нужно что бы он туда записывал при создании в это строку !
    Примерно вот так
    Код (Text):
    1.                     $zip = new ZipArchive;
    2.                     $res = $zip->open('site.zip');
    3.                     if ($res === TRUE) {
    4.                         $zip->extractTo('../ok/');
    5.                         $zip->close();
    6.                                                 $off = "9381273";
    И он должен в файл dr.php в строчку $off = ""; вставить $off = "9381273";
     
  2. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.132
    Симпатии:
    1.251
    Адрес:
    там-сям
    у тебя есть файл, ты в него должен записать строчку. не догоняю, а при чем тут zip? это реально имеет значение?
     
  3. Svoloch_196

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

    С нами с:
    28 янв 2012
    Сообщения:
    227
    Симпатии:
    0
    Я просто не знаю как это всё сделать, просто у меня он распаковывает в папку "OK" В нем файл dr.php вот именно в нём мне надо изменить 1 строку $off = "";
     
  4. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну открой этот файл и замени. Если файл небольшой, то можно даже не заморачиваться с поиском строки, а сделать по-простому:

    Код (PHP):
    1. $content = file_get_contents(__DIR__ . "../ok/dr.php");
    2. $content = str_replace('$off = ""', '$off = "9381273"', $content);
    3. file_put_contents(__DIR__ . "../ok/dr.php", $content);
    4.  
     
  5. Svoloch_196

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

    С нами с:
    28 янв 2012
    Сообщения:
    227
    Симпатии:
    0
    Вот какая ошибка

    Код (Text):
    1.  
    2. Warning: file_get_contents(/home/host/site.ru/htdocs/panel/lib../mg/install/dr.php) [function.file-get-contents]: failed to open stream: No such file or directory in
    3. Warning: file_put_contents(/home/host/site.ru/htdocs/panel/lib../mg/install/dr.php) [function.file-put-contents]: failed to open stream: No such file or directory in
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    :D
    это как?
    __DIR__ . "../ok/dr.php"
     
  7. Svoloch_196

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

    С нами с:
    28 янв 2012
    Сообщения:
    227
    Симпатии:
    0
    Как исправить?

    Добавлено спустя 10 минут 48 секунд:
    Исправил, Спасибо

    Добавлено спустя 3 минуты 25 секунд:
    Только вот в чём дело он мне всё удаляет из этого файла а у меня там не только этот код
     
  8. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    хм. А что удаляет и что остается?
     
  9. Svoloch_196

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

    С нами с:
    28 янв 2012
    Сообщения:
    227
    Симпатии:
    0
    ну я сделал допустим
    Код (Text):
    1. $off = ""'
    2. $off2 = ""'
    3. $off3 = ""'
    4. $off4 = ""'
    5. $off5 = ""'
    Мне он всё удалил и оставил только
    И он просто записывает
    А нужно
     
  10. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Не должен все удалять.
    Так как он просто заменяет $off = "" на $off = "9381273"
    И даже если написано:
    $off = ""; то он все равно заменит на $off = "9381273";
     
  11. Svoloch_196

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

    С нами с:
    28 янв 2012
    Сообщения:
    227
    Симпатии:
    0
    Ну да извините просто я тупанул
     
  12. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Я опечатался с утра немного :) Со всеми бывает.
     
  13. Svoloch_196

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

    С нами с:
    28 янв 2012
    Сообщения:
    227
    Симпатии:
    0
    А подскажите а возможно сделать проверку
    Если допустим я сделаю так
    Мне он запишет без знака "-" а просто "9381273"
     
  14. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    А почему он вдруг будет минус убирать? Не замечал за str_replace такого поведения
     
  15. Svoloch_196

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

    С нами с:
    28 янв 2012
    Сообщения:
    227
    Симпатии:
    0
    да нет просто это у меня используется а если я поставлю - он мне не должен его записать

    Добавлено спустя 1 минуту 38 секунд:
    Нет записал он мне её как
    А можно проверку сделать ?!

    Добавлено спустя 1 минуту 44 секунды:
    если будет "-" то он его просто пропускает и записывает как 9381273
     
  16. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Можно регуляркой всё кроме цифр вырезать. Ну может кто-то лучше подскажет
     
  17. Svoloch_196

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

    С нами с:
    28 янв 2012
    Сообщения:
    227
    Симпатии:
    0
    Помочь сможешь ?!, там будут цифры и буквы, русский не будет только a-b и 0-9, Ты помочь сможешь ?!
     
  18. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. preg_replace('/[^0-9a-b]/i','','9381-273dgfhjab'); //9381273ab