php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Jobs und Projekte > Projekthilfe
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


Projekthilfe Hier könnt Ihr eine Art Projekthilfe anfordern. Unter Projekthilfe verstehen wir Angebote bei denen KEIN Geld gezahlt werden kann.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 25-09-2008, 04:29
Siggy
 Newbie
Links : Onlinestatus : Siggy ist offline
Registriert seit: Sep 2008
Beiträge: 2
Siggy ist zur Zeit noch ein unbeschriebenes Blatt
Standard Von Java zu PHP: java.util.Random und Co.

Hi,
kann vielleicht jemand von euch neben PHP auch Java? Ich möchte nämlich eine Funktionen in PHP aus Java übersetzen, die einen String codiert, dafür muss ich eine weitere Funktion und zwei komplette Klassen übersetzen, glaube ich zu mindest. Habe dabei richtig üble Probleme, weshalb ich nun einfach mal drauf los poste:

Java:
Code:
  private int[] a(long paramLong, int paramInt)
  {
    int[] arrayOfInt = new int[paramInt];
    Random localRandom = new Random(paramLong);
    for (int i1 = 0; i1 < paramInt; ++i1)
      arrayOfInt[i1] = (int)(localRandom.nextDouble() * paramInt);
    return arrayOfInt;
  }

  private String jdMethod_if(long paramLong, String paramString)
  {
    int i1 = paramString.length();
    char[] arrayOfChar = new char[paramString.length()];
    int[] arrayOfInt = a(paramLong, i1);
    if (paramString.length() == 0)
      return "";
    paramString.getChars(0, paramString.length(), arrayOfChar, 0);
    int i2 = arrayOfChar[arrayOfInt[0]];
    for (int i3 = 0; i3 <= i1 - 2; ++i3)
      arrayOfChar[arrayOfInt[i3]] = arrayOfChar[arrayOfInt[(i3 + 1)]];
    arrayOfChar[arrayOfInt[(i1 - 1)]] = i2;
    return new String(arrayOfChar);
  }
Und hier mein vollkommen verbuggter Ansatz:
PHP-Code:
<?php
class jAtomic
{
  var 
$value;
  
  function 
AtomicLong($initialValue)
  {
    
$this->value $initialValue;
  }
  
  function 
get()
  {
    return 
$this->value;
  }
  
  function 
set($newValue)
  {
    
$this->value $newValue;
  }
  
  
//Hier tuts schon richtig weh...
  
function compareAndSet($expect$update)
  {
    echo(
"e: $expect, u: $update\n");
    
    if(
$expect == $update)
    {
      return 
true;
    }
    else
    {
      
$this->value $update;
      return 
false;
    }
  }
}

class 
jRandom
{
  var 
$serialVersionUID 3905348978240129619;
  var 
$multiplier       0x5DEECE66D;
  var 
$addend           0xB;
  var 
$mask             null;
  
  function 
Random($seed)
  {
    
$this->seed = new jAtomic;
    
$this->seed->AtomicLong(0);
    
$this->setSeed($seed);
  }
  
  function 
setSeed($seed)
  {
    
$this->mask = (<< 48) - 1;
    
$seed = ($seed $multiplier) & $this->mask;
    
    
$this->seed->set($seed);
  }
  
  function 
next($bits)
  {
    
$this->mask = (<< 48) - 1;
    
    do
    {
      
$oldseed  $this->seed->get();
      
$nextseed = ($oldseed $this->multiplier $this->addend) & $this->mask;
    } while(!
$this->seed->compareAndSet($oldseed$nextseed));
    
    return 
$nextseed >> (48 $bits);
  }
  
  function 
nextDouble()
  {
    return (
$this->next(26) << 27) + $this->next(27);
  }
}

function 
a($paramLong$paramInt)
{
  
$tInt null;
  
$localRandom = new jRandom;
  
$localRandom->Random($paramLong);
  
  for(
$iL 0$iL $paramInt; ++$iL)
    
$tInt[$iL] = ($localRandom->nextDouble() * $paramInt);
  
  return 
$tInt;
}

function 
jdMethod_if($paramLong$paramString)
{
  
$iL strlen($paramString);
  
$tAoC null;
  
$tAoI a($paramLong$iL);
  
  if(
strlen($paramString) == 0)
    return 
"";
  
  
$tAoC $paramString;
  
$i2 $tAoC[$tAoI[0]];
  
  for(
$i3 0$i3 <= $iL 2; ++$i3)
    
$tAoC[$tAoI[$i3]] = $tAoC[$tAoI[($i3 1)]];
  
  
$tAoC[$tAoI[($iL 1)]] = $i2;
  
  return 
$tAoC;
}

echo 
jdMethod_if(1147"Dies ist ein Test!");
?>
Mit Zitat antworten
  #2 (permalink)  
Alt 25-09-2008, 13:09
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Guck dir doch mal rand bzw. mt_rand an.
Mit Zitat antworten
  #3 (permalink)  
Alt 25-09-2008, 15:53
Flip7
 Registrierter Benutzer
Links : Onlinestatus : Flip7 ist offline
Registriert seit: May 2007
Ort: Munich
Beiträge: 126
Flip7 ist zur Zeit noch ein unbeschriebenes Blatt
Flip7 eine Nachricht über ICQ schicken
Standard

Ich weiß leider nicht, was das Random Objekt in Java macht, aber grundsätzlich dürfte es doch kein Problem sein das umzuschreiben, weil PHP immer mehr zu Java tendiert! Extends und implements wirst du hier auch finden. Irgendwann gibt es gar keinen Unterschied mehr, aber bis Version 6 gibt es keine Typenüberprüfung bei primitiven Objekten!

also kein "public int getInt(double something)"
sondern lediglich "public function getInt($something)". Den Rest musst in die PHP Dokumentation schreiben!

Und es wird dir hier keiner Dein Programm umschreiben, weil wenig Leute soviel Zeit haben, als dass sie hier ganze Programmrümpfe schreiben .

Von daher finde den Fehler selbst und werde konkret!
Welche Fehler spuckt PHP aus und was glaubst du ist der Fehler. Erklärungen zu Methoden findest du ALLE auf php.net ! Finde den Fehler selbst, dann lernst wenigstens was dabei .

gruß Flip
__________________
Find Parties?
Partysuche
Mit Zitat antworten
  #4 (permalink)  
Alt 25-09-2008, 16:01
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nimm den Java Decompiler dann siehst du was die Klasse macht
Mit Zitat antworten
  #5 (permalink)  
Alt 26-09-2008, 04:15
Siggy
 Newbie
Links : Onlinestatus : Siggy ist offline
Registriert seit: Sep 2008
Beiträge: 2
Siggy ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zur ersten Antwort: Ja, die Funktionen sind mir durchaus bekannt, aber ich dachte, wenn ich die Strings möglichst korrekt entschlüsseln lassen möchte, dann müsste mein Source dem des Java Applets schon sehr nahe kommen. Ich werde mich nun aber ausführlich mit srand() beschäftigen, danke.

Zur zweiten Antwort: Zu nächst möchte ich sagen, dass ich von Java speziell auch gar keine Ahnung habe, weshalb mir das Ganze schwer fällt. Aber wie du nun darauf kommst, dass ich nicht wüsste, dass die Typisierung bei PHP dynamisch, implizit und schwach ist, verstehe ich nicht wirklich. Ich habe doch nirgenswo in meinem PHP Skript (denn PHP ist keine Programmiersprache, sondern eine Skriptsprache) einen Datentyp angegeben. Die Namen der Methoden kommen direkt aus dem Java Quelltext. Funktionen kann man aber bekanntlich so nennen, wie man möchte.

Zur dritten Antwort: Irgendwie verstehe ich diese Antwort gar nicht. Ist es zwingend erforderlich, dass ich das Applet noch einmal durch einen Decompiler laufen lasse? Denn das einzige, mir bekannte Ziel der Benutzung eines Decompilers ist es doch, den Source Code wiedergespiegelt zu bekommen und der befindet sich doch bereits in meinem ersten Beitrag. Falls du über Javaverständnis verfügst und mich darauf hinweisen wolltest, dass der Teil der Klasse, den ich dort oben zitiert habe einen String nicht verschlüsselt, sondern etwas komplett anderes macht, dann bitte ich dich das explizit zu schreiben.
Mit Zitat antworten
  #6 (permalink)  
Alt 26-09-2008, 13:57
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Siggy

Falls du über Javaverständnis verfügst und mich darauf hinweisen wolltest, dass der Teil der Klasse, den ich dort oben zitiert habe einen String nicht verschlüsselt, sondern etwas komplett anderes macht, dann bitte ich dich das explizit zu schreiben.
Die Buchstabenplätze im String werden einfach durcheinander gebracht, mehr macht die beiden Funktionen nicht. Die eine Funktion erzeugt ein zufälliges Array mit ganzen Zahlen; die andere legt dieses Array zugrunde und mischt die Buchstaben im String.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

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