php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.04.2007, 22:42  
Erfahrener Benutzer
 
Registriert seit: 14.01.2006
Beiträge: 111
moose
Standard Buchstaben zählen

Hi,
kennt jemand eine funktion, mit der man einen string nach einem anderen string durchsuchen kann und dabei die anzahl der ergebnise liefert?

Also so z.B.:

$a="abcdefgeee";
$b="e";
echo die_funktion($a,$b);

Ausgabe: 4

Schon mal danke in voraus
moose ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.04.2007, 22:54  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Schau dir das mal an
http://de.php.net/manual/de/function.substr-count.php:
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 05.04.2007, 22:59  
Erfahrener Benutzer
 
Registriert seit: 14.01.2006
Beiträge: 111
moose
Standard

danke für die schnelle antwort
__________________
http://www.martin-thoma.de
moose ist offline  
Alt 05.04.2007, 23:52  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

vozu soll das gut sein?
__________________
Wie man Fragen richtig stellt
dsmcg ist offline  
Alt 07.04.2007, 12:00  
Erfahrener Benutzer
 
Registriert seit: 14.01.2006
Beiträge: 111
moose
Standard

naja, ich versuche einen verschlüsselten text zu entschlüsseln (nur substitution) und wollte ne häufigkeitsanalyse machen. leider hats nicht sehr geholfen.

gibt es eine funktion, mit der man buchstaben tauschen kann?
Ich kenne str_replace und preg_replace und auch dass man mit preg_replace arrays benutzen kann, aber wenn man das tut, wird der string für jeden array neu durchgegangen und ich will das auf einen schlag.

beispiel was preg_replace tut:

$string="tvq mel nt htcjq ev qvizlgnqk fqhheyq";
$search[0] = "/e/";
$search[1] = "/i/";
$replace[0]= "i";
$replace[1]= "e";
$string = preg_replace($search, $replace, $string);
echo $string;

ergebnis: tvq mel nt htcjq ev qvezlgnqk fqhheyq.
ich will : tvq mil nt htcjq iv qvezlgnqk fqhhiyq

ich hoffe es ist klar was ich will, ich will nicht ersetzen, sondern tauschen
__________________
http://www.martin-thoma.de
moose ist offline  
Alt 07.04.2007, 12:40  
Erfahrener Benutzer
 
Registriert seit: 03.11.2004
Beiträge: 289
rbs_phoenix
rbs_phoenix eine Nachricht über ICQ schicken
Standard

geht das nich so??:

PHP-Code:
$string="tvq mel nt htcjq ev qvizlgnqk fqhheyq";
$array = array("i" => "e""e" => "i");
echo 
$string.'
'
;
echo 
strtr($string$array); 
da kommt raus:
Code:
tvq mel nt htcjq ev qvizlgnqk fqhheyq
tvq mil nt htcjq iv qvezlgnqk fqhhiyq
denke das is was du willst
__________________
Homepage: http://www.rbs-page.de
rbs_phoenix ist offline  
Alt 12.08.2007, 01:46  
Erfahrener Benutzer
 
Registriert seit: 14.01.2006
Beiträge: 111
moose
Standard

vielen dank rbs_phoenix, das war was ich wollte.

Inzwischen habe ich wieder ein neues projekt gestartet und benötige hier auch eine häufigkeitsanalyse^^

Ich will mit php ein hangman-skript erstellen. dazu sollen wörter in einer datenbank gespeichert werden. es wird abgefragt, welche wörter noch in frage kommen. nun hab ich anfangs einen _sehr_ großen array, in dem ich diese wörter speicher. dann will ich wissen, wie viele dieser wörter mindestens einmal z.B. den buchstaben 'a' beinhalten. irgendwelche ideen? ich wäre so vorgegangen, aber das erscheint mir sehr aufwändig:


PHP-Code:
<?
function analyse($a_woerter$buchstabe){
  for(
$index=0;$indx<count($a_woerter);$index++){
    if(
strrpos($a_woerter[$index],$buchstabe)){$count++;}
  }
  return 
$count;
}
?>
__________________
http://www.martin-thoma.de
moose ist offline  
Alt 12.08.2007, 14:27  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Warum benutzt du strrpos()? Dazu muss erst das Ende des Strings gesucht werden, um von dort aus zu suchen. Benutz strpos() (und zwar so, wie es im Handbuch erwähnt ist, strpos() ohne Typ-Vergleich macht keinen Sinn) und bau ein break ein, wenn das Zeichen gefunden wurde. Außerdem solltest du, wenn du schon mit großen Arrays arbeitest (was ist denn überhaupt für dich _sehr_ groß?), deine Schleifenabfrage optimieren:

PHP-Code:
<?php
for ($i 0$ix count($a_woerter); $i $ix; ++$i) {
?>
= schneller, weil nicht jedes mal die schon bekannte und sich nicht ändernde Größe des Arrays neu berechnet wird und ++$i schneller ist als $i++, da der Befehl nicht in 2 aufgeteilt werden muss.
Für Schleifen-Variablen solltest du der Übersicht zuliebe nur 1 Zeichen verwenden.
Zergling-new ist offline  
Alt 12.08.2007, 16:46  
Erfahrener Benutzer
 
Registriert seit: 14.01.2006
Beiträge: 111
moose
Standard

Zitat:
Warum benutzt du strrpos()?
weil ich nur ein zeichen benötige und dachte, dass es schneller ginge...

Zitat:
was ist denn überhaupt für dich _sehr_ groß?
bis zu 500 elemente würd ich sagen ... allerdings kommt das auf die datenbank an (also dauert das noch etwas)

also so:
PHP-Code:
<?
function analyse($a_woerter$buchstabe){
  
$count=0;
  for(
$i=0,$ix=count($a_woerter);$i<$ix;++$i){
    if(
strrpos($a_woerter[$i],$buchstabe)!== FALSE){$count++;}
  }
  return 
$count;
}
?>
wo soll da dann das break rein? ich will ja wissen, wieviele der in $a_woerter gespeicherten wörter den buchstaben $buchstabe enthalten, also würde es in der for-schleife keinen sinn machen. und für if-abfragen verwendet man doch kein break (oder doch?)
__________________
http://www.martin-thoma.de
moose ist offline  
Alt 12.08.2007, 19:02  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

strpos() durchsucht den String von vorne ausgehend, strrpos() (mit 2 r) durchsucht den String von hinten. Es macht eigentlich keinen Sinn hier strrpos() zu verwenden. Egal.

Zitat:
ich will ja wissen, wieviele der in $a_woerter gespeicherten wörter den buchstaben $buchstabe enthalten
Sorry hab Quark geredet, hast natürlich Recht.
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
php zeichen zählen, php buchstaben zählen, häufigkeitsanalyse online, tvq mel nt htcjq ev qvizlgnqk, tvq mel nt htcjq ev qvizlgnqk fqhheyq, tvq mel nt htcjq, buchstaben zählen php, php count buchstaben, quark 8 zeichen zählen, php count buchstaben zählen, tvq mel nt htcjq ev, häufigkeitsanalyse online mit sonderzeichen, \tvq mel nt \, php variable buchstaben zählen, textanalyse zeichenzählung php funktion, php zeichen zählen if, zeichen zählen php, tvq mel nt, php count einzelne buchstaben in wort, wieviel zeichen ein array

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.