Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Dateien verändern

Diskussion: Dateien verändern im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hi, ich will eine datei (.pnm) öffnen und in diese alle hex werte AA in 00 ändern. Nur irgenwie ...

Antwort
Alt 29.10.07, 17:59   #1 (permalink)
 
Registriert seit: 03.01.05
-Tux- Leistung: Facit NTK
-Tux- eine Nachricht über ICQ schicken
Likes: 0
Dateien verändern

Anzeige

Hi,
ich will eine datei (.pnm) öffnen und in diese alle hex werte AA in 00 ändern. Nur irgenwie will es nicht so. Wo liegt mein fehler? bzw. wie kann ich es realisieren?

PHP-Code:
<?
function string2hex($str)
{
  if (
trim($str)!="")
  {
    
$hex="";
    
$length=strlen($str);
    for (
$i=0$i<$length$i++)
    {
      if (
$i>0$bound="-"; else $bound="";
      
$hex.=$bound.str_pad(dechex(ord($str[$i])), 20STR_PAD_LEFT);
    }
    return 
$hex;
  }
}

function 
hex2str($hex)
{
  for(
$i=0;$i<strlen($hex);$i+=2)
  {
    
$str.=chr(hexdec(substr($hex,$i,2)));
  }
  return 
$str;
}

$f fopen("tmp.pnm","w+");
 
$f1 fgets($f,1024);
 
$f1 string2hex($f1);
   
ereg_replace("AA""00"$f1);
   
rewind($f);
   
$f1 hex2str($f1);
 
fwrite($f$f1);
fclose($f);
-Tux- ist offline   Mit Zitat antworten
Alt 29.10.07, 18:50   #2 (permalink)
 
Registriert seit: 06.08.07
jumpa Leistung: Facit NTK
Likes: 0
Standard

ereg_replace erwartet einen Regex.

Ansonsten guck mal ob die Funktionen Hex2string bzw. String2Hex den erwünschten Rückgabewert liefern.
jumpa ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 29.10.07, 18:56   #3 (permalink)
 
Registriert seit: 30.06.06
sp!n Leistung: Facit NTK
sp!n eine Nachricht über ICQ schicken
Likes: 0
Standard

Nein, man kann ereg_replace auch mit Strings verwenden, jedoch würde ich die Funktion preg_replace vorziehen, da sie um einiges schneller ist. Sonst wäre noch sinnvoll zu erfahren was nicht funktioniert, also ob nur einige Zeichen geändert werden, sich nichts tut, er nicht konvertiert etc.
sp!n ist offline   Mit Zitat antworten
Alt 29.10.07, 19:21   #4 (permalink)
Senior Member
 
Benutzerbild von Chakky
 
Registriert seit: 28.10.03
Chakky Leistung: 8086
Chakky eine Nachricht über ICQ schicken
Likes: 110
Standard

was sagt denn error_reporting(E_ALL);
__________________
cu
Chakky

we are dreaming in digital
we are living in realtime
we are thinking in binary
we are talking in IP
welcome to our world
Chakky ist offline   Mit Zitat antworten
Alt 29.10.07, 21:24   #5 (permalink)
Themenstarter
 
Registriert seit: 03.01.05
-Tux- Leistung: Facit NTK
-Tux- eine Nachricht über ICQ schicken
Likes: 0
Standard

hmm also er liest irgneiwie nur die ersten2 bytes der datei.
-Tux- ist offline   Mit Zitat antworten
Alt 29.10.07, 21:38   #6 (permalink)
Moderator
 
Benutzerbild von lightsaver
 
Registriert seit: 19.06.06
lightsaver Leistung: Pentium Ilightsaver Leistung: Pentium Ilightsaver Leistung: Pentium I
Likes: 52
Standard

hmmm, also es sind mehrere sachen, die du mal überprüfen solltest. zum einen setzt w+ bei fopen die dateilänge wohl auf 0 byte was ein möglicher grund sein könnte.
das nächste ist, dass man bei binärdateien (um solche scheint es sich ja zu handeln wenn ich dich richtig verstehe) nicht fgets nehmen soll sondern fread und fwrite

vielleicht hilft dir das ja bei der fehlersuche
lightsaver ist offline   Mit Zitat antworten
Alt 29.10.07, 21:47   #7 (permalink)
Themenstarter
 
Registriert seit: 03.01.05
-Tux- Leistung: Facit NTK
-Tux- eine Nachricht über ICQ schicken
Likes: 0
Standard

thx mit fread gehts schon viel besser. Klappt jetzt alles wie gewollt.

PHP-Code:
$f fopen("tmp.pnm","r+");
$f1 fread($f3613);
$f1 string2hex($f1);

$f1 ereg_replace("aa""00"$f1);
   echo 
$f1;
$f1 hex2str($f1);

  
fclose($f);
  
$o fopen("tmp1.pnm","w+");
   
fwrite($o$f1 );
fclose($o); 
-Tux- ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » Dateien verändern
Themen-Optionen
Ansicht

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

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
URL verändern erik SN (Web-) Design und webbasierte Sprachen 4 27.11.08 16:59
wma-Dateien sowie rm-Dateien in mp3-Dateien umwandeln blanc Music- & Filmbox 4 16.11.05 04:06
EXIF verändern Crux Off topic-Zone 0 20.10.05 13:40
Header verändern Beforegod Code Kitchen 1 28.03.03 13:39
Programme verändern Cyberextension Code Kitchen 6 08.08.02 11:12


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61