| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

21-08-2010, 12:53
|
|
Raggazzi
Registrierter Benutzer
|
|
Registriert seit: Oct 2008
Beiträge: 10
|
|
Wortmengen auf 5 begrenzen
Hallo zusammen,
ich versuche in php die Wortmengen von "$row->description" auf 5 zu begrenzen!
Ich versuchte es schon so aber ohne Erfolg:
HTML-Code:
<td>
<?php
preg_match('/(\w+\s*){5}/', $row->description);
echo $row->description[0];
?>
</td>
Wer kann mir helfen?
Gruss Raggazzi
|

21-08-2010, 12:56
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
preg_match ändert nie den Suchstring, schon gar nicht in ein Array. Beachte den Parameter $matches in der Doku und taste dich ggf. mit print_r ran.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

25-08-2010, 22:28
|
|
Peacie
Registrierter Benutzer
|
|
Registriert seit: Nov 2003
Beiträge: 341
|
|
hab ich die frage falsch verstanden, oder kann man nicht einfach das 4. vorkommen eines leerzeichens verwenden ?
|

25-08-2010, 22:31
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Peacie
hab ich die frage falsch verstanden
|
Nein.
Zitat:
Zitat von Peacie
kann man nicht einfach das 4. vorkommen eines leerzeichens verwenden ?
|
Kann man – also das fünfte und dann dort abschneiden.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

26-08-2010, 20:30
|
|
Marc86
Registrierter Benutzer
|
|
Registriert seit: Apr 2010
Beiträge: 3
|
|
Hallo Raggazzi,
ich denke dies sollte dir weiterhelfen:
PHP-Code:
//Dieses Skript dient nur zum begrenzen eines Vorgegebenen Strings
function splitString($str,$maxWords) { $strTemp = ""; //New String $x = 0; //Array Counter $y = 0; //Space Counter while($x<strlen($str) && $y<=($maxWords-1)) { if($str[$x]==" " || $str[$x]== " ") { $y++; } $strTemp[$x] = $str[$x]; $x++; } return implode("",$strTemp); }
$str = "Das ist ein Test String, der maximal 3 Wörter ausgeben darf";
//Anschließend kannst du die Funktion folgendermaßen Aufrufen: echo splitString($str,3);
Viele Grüße
Marc
|

26-08-2010, 23:26
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Oder einfach so:
PHP-Code:
$text = 'abd def ghi jkl mno pqr stu vwx yz';
$words = 5;
echo implode(' ', array_slice(explode(' ', $text), 0, $words));
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

26-08-2010, 23:35
|
 |
fab-s
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 28
|
|
Oder eventuell etwas performanter, da nicht der gesamte Text zerlegt wird:
PHP-Code:
echo implode(' ', array_slice(explode(' ', $text, $words+1), 0, -1));
|

27-08-2010, 00:33
|
|
Marc86
Registrierter Benutzer
|
|
Registriert seit: Apr 2010
Beiträge: 3
|
|
@ AmicaNoctis , danke =) wieder was gelernt :P
|

27-08-2010, 11:18
|
 |
fab-s
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 28
|
|
Zitat:
Zitat von fab-s
Oder eventuell etwas performanter, da nicht der gesamte Text zerlegt wird:
PHP-Code:
echo implode(' ', array_slice(explode(' ', $text, $words+1), 0, -1));
|
Das hat mich jetzt mal interessiert, ein kleiner Test hat ergeben dass der Unterschied ab einer Größenordnung von ca 5000 Wörtern relevant wird aber dann immerhin recht deutlich mit rund 100fachem Geschwindigkeitsgewinn. Selbst bei 300000 Wörtern bewegt sich meine Lösung noch im Millisekunden-Bereich. Die oben vorgeschlagene splitString() Funktion ist übrigens in etwa genauso schnell
Also zumindest bei großen Daten lohnt sich solche "Mikro-Optimierung" dann doch.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| 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.
HTML-Code ist aus.
|
|
|
|
PHP News
|