Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Замена в файле
 
 автор: oops_bin   (29.05.2007 в 09:59)   письмо автору
 
 

Приложен файл 1.jar. В нем есть go.class
Как динамично заменить в go.class слово OPS88 на любое другое и сохранить jar без потери функциональности?
Срочно очень нужно..

   
 
 автор: oops_bin   (29.05.2007 в 10:09)   письмо автору
 
   для: oops_bin   (29.05.2007 в 09:59)
 

Я могу немного заплатить, у меня на кошельке около $4.
Незнаю уже куда податься.. :(

   
 
 автор: oops_bin   (29.05.2007 в 10:09)   письмо автору
 
   для: oops_bin   (29.05.2007 в 09:59)
 

Я могу немного заплатить, у меня на кошельке около $4.
Незнаю уже куда податься.. :(

   
 
 автор: oops_bin   (29.05.2007 в 10:21)   письмо автору
 
   для: oops_bin   (29.05.2007 в 09:59)
 

:(

   
 
 автор: Trianon   (29.05.2007 в 11:21)   письмо автору
 
   для: oops_bin   (29.05.2007 в 10:21)
 

Неудивительно.
Там нет такого слова. Слово SOX88 есть, а того, что Вы указали - нету.

   
 
 автор: oops_bin   (29.05.2007 в 13:48)   письмо автору
 
   для: Trianon   (29.05.2007 в 11:21)
 

:) Ну а SOX88 как заменить на нужное?

   
 
 автор: Unkind   (29.05.2007 в 13:52)   письмо автору
 
   для: oops_bin   (29.05.2007 в 13:48)
 

JAR - это ZIP с максимальной степенью сжатия. Для работы с ZIP есть специальные библиотеки и пакеты PEAR.

   
 
 автор: oops_bin   (29.05.2007 в 13:55)   письмо автору
 
   для: Unkind   (29.05.2007 в 13:52)
 

С zip я работать умею, но после обычной замены в Go.class - jar теряет работоспособность.

   
 
 автор: coloboc66   (29.05.2007 в 14:00)   письмо автору
 
   для: Unkind   (29.05.2007 в 13:52)
 

Не врублюсь что-то: ну, допустим, есть спец.библиотеки для работы с *.zip и *.jar , допустим, вы сможете распаковать архив и добраться до файла *.class , ну а дальше что? Чтобы этот файл подкорректировать, его нужно ДЕКОМПИЛИРОВАТЬ, изменить и снова СКОМПИЛИРОВАТЬ. Такое возможно хотя бы теоретически средствами РНР???!!!

   
 
 автор: oops_bin   (29.05.2007 в 14:02)   письмо автору
 
   для: coloboc66   (29.05.2007 в 14:00)
 

Да.
[url=http://sox1.ru]Тут (sox1.ru)[url] такой jar формируется динамически.

   
 
 автор: Unkind   (29.05.2007 в 14:05)   письмо автору
 
   для: oops_bin   (29.05.2007 в 14:02)
 

Мне немного лень искать че там где. Что именно изменяется?

   
 
 автор: oops_bin   (29.05.2007 в 14:11)   письмо автору
 
   для: Unkind   (29.05.2007 в 14:05)
 

Изменяется слово SOX[0-9] в зависимости от id пользователя. Т.е. после регистрации на sox1.ru создается файл jar с уже введенным в Go.class кодом партнера.

   
 
 автор: Unkind   (29.05.2007 в 14:14)   письмо автору
 
   для: oops_bin   (29.05.2007 в 14:11)
 

А покажите как Вы делаете "обычную замену".

   
 
 автор: oops_bin   (29.05.2007 в 14:16)   письмо автору
 
   для: Unkind   (29.05.2007 в 14:14)
 


<?php

$filename 
"go.class";

$handle fopen($filename"rb");
    
$contents fread($handlefilesize($filename));
fclose($handle);

$contents str_replace('SOX88''TEXT'$contents);

$writedata=fopen($filename,"a+");
    
fputs($writedata,$contents);
fclose($writedata);

?>

   
 
 автор: Unkind   (29.05.2007 в 14:17)   письмо автору
 
   для: oops_bin   (29.05.2007 в 14:16)
 

Замените "a+" на "wb".

   
 
 автор: oops_bin   (29.05.2007 в 14:20)   письмо автору
 
   для: Unkind   (29.05.2007 в 14:17)
 

Уже пробывал, работоспособность все равно теряется, независимо от метода записи.

   
 
 автор: Unkind   (29.05.2007 в 14:29)   письмо автору
 
   для: oops_bin   (29.05.2007 в 14:20)
 

Возможно не так упаковываете. Причем, лучше сохранять файл с таким именем, какой он в оригинале. У Вас файл называется Go.class, а тут go.class.

   
 
 автор: coloboc66   (29.05.2007 в 14:20)   письмо автору
 
   для: Unkind   (29.05.2007 в 14:14)
 

По вашей ссылке пустая страница. Ну не верю, что такое возможно. Сформировать jar динамически -допустим, но перекомпилировать класс - фантастика... ИМХО.

   
 
 автор: Unkind   (29.05.2007 в 14:21)   письмо автору
 
   для: coloboc66   (29.05.2007 в 14:20)
 

но перекомпилировать класс - фантастика
Никто его перекомпилировать не собирается.

   
 
 автор: oops_bin   (29.05.2007 в 14:23)   письмо автору
 
   для: coloboc66   (29.05.2007 в 14:20)
 

Coloboc66, пройдите регистрацию на http://sox.masterwapa.ru/partners/index.php?act=reg
И увидите, что jar сформируется динамически.

// отойду на 30 минут.

   
 
 автор: coloboc66   (29.05.2007 в 14:31)   письмо автору
 
   для: oops_bin   (29.05.2007 в 14:23)
 

Прошел и ничего не увидел. Яр может и формируется динамически, но в яре есть скомпилированный класс, и этот класс вы НИКАК не измените динамически, потому что тогда его нужно будет перекомпилировать.

   
 
 автор: Unkind   (29.05.2007 в 14:32)   письмо автору
 
   для: coloboc66   (29.05.2007 в 14:31)
 

этот класс вы НИКАК не измените динамически
Ну почему же. С чего Вы взяли?

   
 
 автор: coloboc66   (29.05.2007 в 15:18)   письмо автору
 
   для: Unkind   (29.05.2007 в 14:32)
 

Исходный код на яве (файл *.java) перед употреблением следует скомпилировать в компиляторе и получить файл *.class Я так понимаю, что если вы после этого откроете данный файл допустим, в блокноте, и измените его, то вы таким образом его просто повредите, потому что нарушите байт-код. Но это мое мнение. Я бы обратился на форум по ява по такому вопросу.

   
 
 автор: Unkind   (29.05.2007 в 15:20)   письмо автору
 
   для: coloboc66   (29.05.2007 в 15:18)
 

А мы разве открываем в Блокноте? :)

   
 
 автор: coloboc66   (29.05.2007 в 15:21)   письмо автору
 
   для: Unkind   (29.05.2007 в 15:20)
 

Да не важно в чем, важно, что он уже скомпилирован.

   
 
 автор: Unkind   (29.05.2007 в 15:40)   письмо автору
 
   для: coloboc66   (29.05.2007 в 15:21)
 

Нет, Вы ошибаетесь.

   
 
 автор: oops_bin   (29.05.2007 в 15:41)   письмо автору
 
   для: coloboc66   (29.05.2007 в 15:21)
 

Т.е. вы хотите сказать, что автор sox1.ru наделал кучу яров с уже готовыми классами для каждого партнера? Смешно, право..

   
 
 автор: Unkind   (29.05.2007 в 15:45)   письмо автору
 
   для: oops_bin   (29.05.2007 в 15:41)
 

Так покажите полный код с распаковкой/упаковкой кроме самого класса, отвечающего за работу с ZIP.

   
 
 автор: oops_bin   (29.05.2007 в 15:47)   письмо автору
 
   для: Unkind   (29.05.2007 в 15:45)
 

Вечером только, сейчас нет доступа к тому компьютеру.

   
 
 автор: coloboc66   (29.05.2007 в 15:49)   письмо автору
 
   для: oops_bin   (29.05.2007 в 15:41)
 

Может он для каждого нового партнера динамически формирует класс и динамически его компилирует. Но не изменяет же динамически...

   
 
 автор: Unkind   (29.05.2007 в 15:52)   письмо автору
 
   для: coloboc66   (29.05.2007 в 15:49)
 

Откуда фраза-то такая "изменять динамически"? Начинает качать, сохраняет. БАЦ! Файл изменился, переносит его в другую папку. БАЦ! Файл изменился. :)

   
 
 автор: oops_bin   (29.05.2007 в 15:54)   письмо автору
 
   для: coloboc66   (29.05.2007 в 15:49)
 

На PHP? ;)

   
 
 автор: Trianon   (29.05.2007 в 16:16)   письмо автору
 
   для: oops_bin   (29.05.2007 в 15:54)
 

php не может вызвать компилятор?

   
 
 автор: oops_bin   (29.05.2007 в 15:45)   письмо автору
 
   для: coloboc66   (29.05.2007 в 15:21)
 

http://sox.masterwapa.ru/reg/sox88.jar - вот файл, который появляется сразу же после регистрации.
Заметьте, файла http://sox.masterwapa.ru/reg/sox300.jar еще нет (партнер не зарегистрирован), значит код go.class формируется динамически на php.

   
 
 автор: coloboc66   (29.05.2007 в 16:33)   письмо автору
 
   для: oops_bin   (29.05.2007 в 15:45)
 

Зарегистрировался я на этом сайте, ни фига не понял: после регистрации присылает мне "ссылку на мой каталог, на ява-регистрацию". При щелчке по ссылке начинает загружаться яр-файл, который нечитаем и непонятно для чего мне нужен. После авторизации жму по ссылке "скачать видеокаталог", опять загружается какой-то непонятный файл в 340 байт. Фиг поймешь вообще логику работы данного сайта.

   
 
 автор: coloboc66   (30.05.2007 в 10:27)   письмо автору
 
   для: coloboc66   (29.05.2007 в 16:33)
 

Зашел я на форум по ява и задал вопрос:"Можно ли вносить изменения в скомпилированный класс?" Оказывается - можно, но с существенными ограничениями, к примеру, если меняется строка, то она должна иметь точно такой же формат (кол-во символов, регистр(?)), как и у старой строки.

   
 
 автор: oops_bin   (30.05.2007 в 11:07)   письмо автору
 
   для: coloboc66   (30.05.2007 в 10:27)
 

Спасибо, работает. Регистр не убивает jar. Доказано техникой )

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования