php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.08.2007, 01:28  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

ich denke du meinst eine frequenzanalyse:

gibt ein array mit den

PHP-Code:
function frequenzanalyse($text,$round=2)
{
    
$text=strtolower(stripslashes($text));
    
$letters=range('a','z');
    
$return=Array();
    
$l=strlen($text);
    
$l-=substr_count($text,' ');
    for(
$n=0;$n<$l;$n++)
    {
        
$part=$text{$n};
        if(!
array_key_exists($part,$return) && in_array($part,$letters)) 
        {
            
$a=round((substr_count($text,$part)*100/$l),$round);
            
$return[$part]=$a;
        }    
    }    
    
ksort($return);
    return 
$return;

erwartetet einen text und gibt ein array zurück in dem die häufigkeit der buchstaben in % angegeben ist...

PHP-Code:
Array
(

] => 4.62
] => 1.52
] => 1.32
] => 3.69
] => 14.91
...

zu deinem caesar decodierung:

das problem liegt woanders. beispiel:

Text: test
Umwandlungsarray: Array('t'=>'e','e'=>'s','s'=>'t');

mit str_replace( Text , Umwandlungsarray ) bekommst du folgendes ergebnis:

tttt

warum? schaun wir mal wie str_replace das array abarbeitet:

Zitat:
1. schritt: ersetzte t durch e: eese
funktioniert wie erwartet

2. schritt: ersetze e durch s: ssss

3. schritt: ersetze s durch t: tttt
verstanden?
brian johnson ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.08.2007, 06:40  
Erfahrener Benutzer
 
Registriert seit: 14.01.2006
Beiträge: 111
moose
Standard

Zitat:
ich denke du meinst eine frequenzanalyse:
Frequenzanalyse = Häufigkeitsanalyse. Ja

was macht " $part=$text{$n}; "?
(sorry, ich hoffe jetzt kommt kein rtfm, ich weiß nicht wie ich das im manual suchen soll)

ehrlich gesagt finde ich zerglings lösung leichter, jedoch kann ich deine denke ich auch (wenn auch für ein anderes skript) gebrauchen.

das caesarproblem ist bereits gelöst und ich habe das problem schon erkannt, trotzdem danke.
__________________
http://www.martin-thoma.de
moose ist offline  
Alt 13.08.2007, 11:56  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Zitat von moose
was macht " $part=$text{$n}; "?
(sorry, ich hoffe jetzt kommt kein rtfm, ich weiß nicht wie ich das im manual suchen soll)
Probiers doch einfach aus

Die Funktion von brian ist etwas seltsam. Statt der Zeichenlänge des Textes minus der Anzahl Leerstellen sollte vielmehr der Array $letters durchlaufen werden. 0-Werte können danach mit array_filter() rausgeworfen werden. Sonst werden Buchstaben, die am Ende vorkommen (Ende = Anzahl Leerstellen im Text) einfach verschluckt. Die Relationsberechnung stimmt dann auch nicht mehr.

Vielleicht auch interessant, bzw. eigentlich genau was du suchst:
http://de.php.net/count_chars
AUch hier einfach mit range() einen Array mit dem Alphabet aufziehen und mit array_diff() die Unterschiede rausziehen, so dass du Sonderzeichen rausschmeissen kannst.
Zergling-new ist offline  
Alt 13.08.2007, 20:24  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Zergling
Die Funktion von brian ist etwas seltsam. Statt der Zeichenlänge des Textes minus der Anzahl Leerstellen sollte vielmehr der Array $letters durchlaufen werden. 0-Werte können danach mit array_filter() rausgeworfen werden. Sonst werden Buchstaben, die am Ende vorkommen (Ende = Anzahl Leerstellen im Text) einfach verschluckt. Die Relationsberechnung stimmt dann auch nicht mehr.
nein, war ja eigentlich für die relationsberechnung. das am ende was verschluckt wird hab ich garnich bedacht....*hups*
muss dazu auch sagen, dass ich mittendrin aufgehört hab als ich cryptool gefunden hab...
brian johnson ist offline  
Alt 13.08.2007, 22:22  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
nein, war ja eigentlich für die relationsberechnung.
Als Ergebnis deiner Schleife kommen maximal 26 Treffer heraus, warum also die Schleife öfter durchlaufen, wenn substr_count() ja das Zählen im Text übernimmt.
Aber egal, will nicht kleinlich sein *erbsen-zurück-kipp*
Zergling-new ist offline  
 


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
Nach erstem Buchstaben aktion max-dhom PHP Tipps 2008 4 28.05.2008 22:03
Buchstaben mit fixen Pixelbreiten in Arrays verpackt rezix PHP Tipps 2008 11 06.03.2008 16:12
Ersetzen einzelner Buchstaben Unbekanntes_Pferd PHP Tipps 2008 26 02.02.2008 16:18
prüfen auf buchstaben Canni PHP Tipps 2006 18 12.12.2006 06:02
Nur mit den ersten 3 Buchstaben einer Variable arbeiten DDogg PHP Tipps 2006 4 16.06.2006 14:20
einen buchstaben großschreiben lassen? comiceman PHP Tipps 2006 8 12.06.2006 19:14
Buchstaben verschlüsseln PHP Tipps 2006 5 24.05.2006 11:53
Zeilenbruch bei 40 buchstaben mokus PHP Tipps 2006 3 22.04.2006 00:43
Liste nach Buchstaben und Sonderzeichen (!) sortiert odaa PHP-Fortgeschrittene 8 11.10.2005 16:26
Buchstaben ausgeben PHP Tipps 2005-2 2 02.09.2005 02:12
eregi zahlen, gross und kleine buchstaben, keine umlaute,... Dave Waterstone PHP Tipps 2005-2 3 24.07.2005 19:11
[Erledigt] Buchstaben in ASCII umwandeln und umgekehrt PHP Tipps 2005 2 07.05.2005 14:36
Kyrillische Buchstaben verbiten test022 PHP Tipps 2005 8 20.01.2005 10:45
Liste nach Buchstaben geordnet PHP-Fortgeschrittene 2 07.10.2004 09:52
[Erledigt] Erster Buchstaben von ganzem Wort PHP Tipps 2004 5 28.06.2004 10:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
tvq mel nt htcjq ev qvizlgnqk, frequenzanalyse text, relationsberechnung, tvq mel nt htcjq ev, frequenzanalyse buchstaben software

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:46 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.