php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.08.2004, 18:12  
Gast
 
Beiträge: n/a
Standard Daten aus *.MPQ-Dateien mittels fread auslesen?

Hi,

ich habe folgendes Problem:
Ich will mittels fopen und fread Daten aus einer binären Datei lesen. Es handelt sich hierbei um das MPQ-Format, was von Blizzard entwickelt wurde. Erstmal meine Frage, ob es möglich ist(und vor allem wie? :wink: ), bestimmte Daten aus der Datei zu lesen, wenn das Format genaustens bekannt ist?

Ich habe einen kleinen Beispielcode geschrieben, welcher mir den Namen einer Karte von Warcraft 3 aus einer *.W3M- bzw *.W3X-Datei, welche auch das MPQ-Format benutzen, ausliest und anzeigt. Das Problem ist, dass ich das Format nicht kenne, darum meine 2. Frage, ob jemand weiss, wie ich an spezielle Daten in einer MPQ komme, wie z.B. "Vorgeschlagene Spieler".

Das auslesen des MapNames habe ich durch probieren hinbekommen, aber das reicht mir nicht...

...hier der code:

PHP-Code:
<?
$filename 
"maps/BonusCredits.w3m";                # Name der Karte

if($mpqfile fopen($filename,"r"))                        # wird Datei richtig geöffnet?
  
echo "'$filename' geöffnet.
"
;

fseek($mpqfile,8);                                               # Dateizeiger auf das 8. Byte setzen

$test rtrim(fread($mpqfile,255));                       # 255 Zeichen auslesen und Leerzeichen abschneiden

$mapname substr($test,0,strpos($test,chr(0)));  # Mapname vom 8. Byte bis zum nächsten Zeichen mit dem ASCII Code 0 auslesen

echo "gelesen($filename): '".$mapname."'";          # Mapname anzeigen

fclose($mpqfile);                                                 # Datei schließen
?>
Die Kommentare dienen nur der Übersicht und müssen nicht unbedingt stimmen. Ich hab sie so genannt, wie ich das verstanden habe.

Ich weiss zwar, dass das nicht viel mit PHP zu tun hat, aber ich weiss nicht, wo ich noch fragen soll

Ich weiss, dass es mit C möglich ist, also warum auch nicht mit PHP...
Da ich leider nur sehr wenig Kenntnisse in C habe, obwohl ich PHP eigentlich gut und sonst nur noch Delphi kann, kann ich vorhandenen C-code nich wirklich umsetzen :wink: und somit ist es mir leider nicht gegeben dieses Problem zu lösen...

...hoffe ihr könnt mir helfen

so far

profiler
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.08.2004, 18:32  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 1.531
Quadaptor befindet sich auf einem aufstrebenden Ast
Standard

Es ist in PHP nicht möglich, Bytecode in "Klartext" umzuwandeln, weil er ja dazu quasi dekompiliert werden muss. Sowas kann natürlich PHP nicht, weil es ja noch nicht mal selber kompiliert wird.

Ich fürchte, da kommst du mit PHP nicht besonders weit. Kannst dich ja mal bei den PECLs umschauen, glaube allerdings auch nicht, dass dort ein Decompiler dabei ist.
Quadaptor ist offline   Mit Zitat antworten
Alt 16.08.2004, 18:35  
Gast
 
Beiträge: n/a
Standard

Hm schade aber klingt logisch....ich schau trotzdem mal, man weiss ja nie ^^

trotzdem DANKE für die schnelle Antwort!
  Mit Zitat antworten
Alt 16.08.2004, 18:47  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 1.531
Quadaptor befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Profiler
ich schau trotzdem mal, man weiss ja nie ^^
genau, schaden kanns ja nicht.

Zitat:
Zitat von Profiler
trotzdem DANKE für die schnelle Antwort!
kein problem, dafür ist das forum da.
Quadaptor ist offline   Mit Zitat antworten
Alt 16.08.2004, 18:51  
Gast
 
Beiträge: n/a
Standard

also an PECL's hab ich nichts weiter gefunden, wie erwartet....

Es gibt Programme, wie WINMPQ, um Daten aus einer MPQ-Datei zu extrahieren, da MPQ sowas wie ein Archivformat ist. Nur leider hilft das sicher auch nicht, weil ich ja nicht bei Webspace auf dem Server irgendwelche Programme ausführen kann, die mir dann Dateien in Klartext liefern...hm das würde höchstens auf einem eigenen bzw. einem Root-Server möglich sein, doch soweit will ich nicht unbedingt gehen...

...müssen wohl die User, die die *.w3m bzw *.w3x hochladen, selber alle Felder ausfüllen....wollte das eigentlich ablösen durch das Auslesen....

Naja vllt ist es irgendwann möglich, dann komm ich nochmal drauf zurück

mfg

profiler
  Mit Zitat antworten
Alt 16.08.2004, 18:56  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 1.531
Quadaptor befindet sich auf einem aufstrebenden Ast
Standard

Du könntest ja mal eine freundliche Mail an den Hersteller schreiben. Vielleicht gibts ja eine kleine Schnittstelle auf deren Seite, die evtl. modifiziert für PHP eingesetzt werden kann. Naja, ist auch unwahrscheinlich, aber wer weiß...

Da, wie du sagtest, das decompilieren mit C möglich ist, und PHP auch in C geschrieben ist, könnte es evtl. klappen. Die Chancen sind zwar gering, aber fragen kostet nichts!
Quadaptor ist offline   Mit Zitat antworten
Alt 16.08.2004, 19:30  
Gast
 
Beiträge: n/a
Standard

Ich habe Blizzard über mein Vorhaben in Kenntnis gesetzt und bin mal gespannt auf die Antwort
  Mit Zitat antworten
Alt 16.08.2004, 21:42  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard hä?

Also hier müssen aber mal ein paar Sachen ganz grob richtig gestellt werden.

Zum einen haben Binäre Datenformate NICHTS, aber auch GAR NICHTS mit Kompilieren zu tun. Kompiliert werden Programmiersprachen, nicht Daten.

Mal abgesehen davon, dass PHP schon lange keine Interpretierte Sprache mehr ist und mit einem JIT-Bytecodecompiler arbeitet, also durchaus auch kompiliert als Bytecode vorliegen kann. Das nur am Rande.

Dementsprechend haben in diesem Thread sämtliche Aussagen von wegen "kompiliert" oder "dekompilieren" und "geht nicht" keinerlei Grundlage.

Mit PHP Binärdaten zu verarbeiten ist kein Problem, so lange man das Format der Binärdaten kennt.
Für aufwändigere Konversionen von Binärdaten bietet sich übrigens unpack() an... ist aber nicht ganz trivial in der Benutzung. Brauchen tut man die Funktion aber nicht.


Und was sonstige Hilfe, wie man sowas in PHP macht, angeht, wären konkretere Fragen sinnvoll...
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Alt 16.08.2004, 22:17  
Gast
 
Beiträge: n/a
Standard

also jetzt bin ich verwirrt

Man kann also binäre Daten lesen, wenn man das Format kennt.
Dann würde mich interessieren wie man das macht....
Vielleicht ein Formatbeispiel, wenn ich 2 integer-Werte in einer Datei binär abgelegt habe, wie kann ich dann genau darauf zugreifen?

MfG

profiler
  Mit Zitat antworten
Alt 16.08.2004, 22:47  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 1.531
Quadaptor befindet sich auf einem aufstrebenden Ast
Standard Re: hä?

Zitat:
Zitat von Waq
Also hier müssen aber mal ein paar Sachen ganz grob richtig gestellt werden.
Gerne, man lernt nie aus!

Zitat:
Zitat von Waq
Zum einen haben Binäre Datenformate NICHTS, aber auch GAR NICHTS mit Kompilieren zu tun. Kompiliert werden Programmiersprachen, nicht Daten.
Das ist klar. Kompilieren beudeutet ja eigentlich nur, dass der für uns lesbare Source in Bytecode bzw. Maschinencode umgewandelt wird.
Wobei natürlich aus kompilierten Programmiersprachen Daten entstehen (können).

Zitat:
Zitat von Waq
Mal abgesehen davon, dass PHP schon lange keine Interpretierte Sprache mehr ist und mit einem JIT-Bytecodecompiler arbeitet, also durchaus auch kompiliert als Bytecode vorliegen kann. Das nur am Rande.
Naja, PHP wird schon noch als interpretierende Sprache behandelt. Natürlich muss an einer Stelle der Source in das für Computer lesbaren Format umgewandelt werden.

Zitat:
Zitat von Waq
Dementsprechend haben in diesem Thread sämtliche Aussagen von wegen "kompiliert" oder "dekompilieren" und "geht nicht" keinerlei Grundlage.
Ich dachte, dass diese MPQ-Dateien irgendwie kompiliert seien. Tatsächlich ging darüber aber nie ein Wort verloren. An diese Stelle muss ich mein Schwachsinn eingestehen.

Gut, so wurde das wenigstens klargestellt und ich habe noch zu später Uhrzeit etwas dazugelernt.
Quadaptor ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Daten aus RSS-Datei ohne PHP5 auslesen? BartTheDevil89 PHP Tipps 2008 6 10.12.2007 22:54
Vom Browser verschickte Daten auslesen und anzeigen? andy32 PHP Tipps 2008 3 22.08.2007 18:33
nur bestimmte Dateien aus einem Verzeichnis auslesen Madden PHP Tipps 2006 2 07.03.2006 17:10
[Erledigt] Orner und Dateien getrennt auslesen ? WIE ? PHP Tipps 2007 8 21.11.2005 22:27
Daten auslesen und ändern Datenbanken 2 17.09.2005 19:28
Daten aus Pw-Geschütztem bereich auslesen PHP-Fortgeschrittene 2 26.08.2005 15:27
nur jpg und gif dateien aus verzeichnis auslesen PHP Tipps 2005-2 6 24.07.2005 14:33
Daten aus Webalizer via PHP auslesen Beitragsarchiv 5 26.06.2005 13:36
PHP Verzeichnisstruktur und Dateien auslesen Chr!s PHP Tipps 2005 2 05.03.2005 14:37
Dateien aus Ordner andersherum auslesen nsane PHP Tipps 2004-2 1 08.12.2004 17:29
Auslesen von Daten aus einer mysql Datenbank + Editieren vampsoftchef PHP Tipps 2004-2 5 15.11.2004 08:31
Daten auslesen PHP Tipps 2004 2 02.11.2004 15:35
[Erledigt] Dateien aus Verzeichnissen vom Webserver auslesen und linken PHP Tipps 2004 3 08.09.2004 10:07
Daten aus Datenbank auslesen Datenbanken 2 01.09.2004 01:58
Daten aus einem Formular auslesen??? PHP-Fortgeschrittene 1 21.06.2004 17:43

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mpq dateien lesen, mpq auslesen, mpq lesen, mpq dateien auslesen, mpq php, mpq format, mpq datei lesen, mpq datei auslesen, mpq datei, php mpq, mpq dateien, mpq unpacker, .mpq lesen, mpq dateien ändern, php fread, fread php, unpack mpq, mpq-datei lesen, mpq, mit fread datei auslesen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:30 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.