PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie generier ich einen Link aus DB?


Stella
12.02.2004, 14:19:36
Hi,

ich wollte Text als $ speichern und so eine Art Kurzbeschreibung machen. Also den String nach "!" oder "." oder "?" durchsuchen lassen und dann eben die Ausgabe nach dem dritten Vorhandensein beenden lassen und ausgeben. Geht das so überhaupt?

Gruß Nina

Stella
12.02.2004, 17:07:34
@moderator: Bitte titel ändern.

c4
12.02.2004, 17:18:20
Was machst du, wenn jemand keine Satzzeichen nutzt? Oder was, wenn man drei Punkte hintereinander schreibt...?

Wegen siehe oben und Ideenlosigkeit, empfehle ich - wie meist gehandhabt - den Text einfach nach n-Zeichen abzubrechen. Erspart dir Arbeit und sonderlich tragisch ist ein unterbrochener Satz nun auch wieder nicht. ;)

Stella
12.02.2004, 17:28:58
Die Daten kommen aus einer DB... ich such grad die Stringfunktion dazu... ;) Gibt ganz schön viele...

c4
12.02.2004, 17:31:45
Original geschrieben von Stella
ich such grad die Stringfunktion dazu... ;) Gibt ganz schön viele... substr() (http://php.net/substr)?

Stella
12.02.2004, 17:36:33
Sorry, aber das versteh ich nicht. Wie kann ich mit dem substr den String nach dem /n durchsuchen und teilen?

LG Nina

c4
12.02.2004, 17:41:31
Original geschrieben von Stella
Wie kann ich mit dem substr den String nach dem /n durchsuchen und teilen? Wieso willst du den Text bei n oder wirklich /n?) abbrechen? Ist das eine Verwechslung mit meinem 'n-Zeichen'?

Was ich meinte ist das: $str='Ich bin ein langer, langer Text. Ein sinnloser dazu.';
echo substr($str, 0, 20).'...';
// Ausgabe: Ich bin ein langer, Ist es das, was du dir so vorgestellt hast?

Stella
12.02.2004, 17:46:49
Ja, aber das problem dabei ist, dass wenn du unterschiedliche Texte aus der DB hast, dass da dann vielleicht einfach mittem im Wort abgeschnitten wird oder? Und genau das will ich umgehen.

c4
12.02.2004, 17:57:34
Genau dagegen gibt es einen kleinen Workaround: <?php
// der String selber
$str='Die alte Frauenkirche schien in ihrer
Bescheidenheit der barocken Residenzstadt
August des Starken nicht angemessen.';

// die ersten 100 Zeichen
$str=substr($str, 0, 100);

// von Anfang bis zum letzten Leerzeichen
$str=substr($str, 0, strrpos($str, ' '));

echo $str;

exit;
?>

Stella
12.02.2004, 18:07:39
Und was ist mit strtok? ich hab das zwar eben ausprobiert, aber es gab keine Ausgabe.

<?php
$text = "Mit dem Slogan "Das kommt heraus, wenn Ingenieure Benzin im Blut haben" wirbt Mercedes Benz für seine SL Modelle.
Den Mythos SLR will Mercedes jetzt mit einem neuen Modell wiederbeleben. Um für dieses neue Auto drucken zu können,
braucht der Drucker Farbe im Blut.

Auf der IAA im September soll der neue Mercedes-Benz SLR McLaren enthüllt werden.
Erste Bilder, die in den Marmorsteinbrüchen von Carrara aufgenommen wurden, zeigen
jeweils nur ein Stückchen des neuen Supersportwagens mit den charakteristischen Schmetterlingstüren.

Sein Vorfahre ist der legendäre SLR-Silberpfeil. Auch der neue SLR wird kein Wagen für die mittlere Spur.
Der Motor, ein V8-Kompressor-Aggregat, das in der Leistungsregion von rund 600 PS (444 kW) angesiedelt sein
wird, kommt von AMG in Affalterbach. Die Endmontage des Fahrzeugs erfolgt dann in Handarbeit bei McLaren
im englischen Woking. Die Bauteile für Chassis und Karosserie werden komplett aus Carbonfiber gebacken.
Der SLR wird mit faserverstärkten Keramikbremsen ausgestattet und insgesamt "noch exklusiver"
sein als die Luxuslimousine Maybach. Der Supersportwagen trägt eine Formel-i-Nase und rollt auf
turbinenförmigen Felgen. 350.000 Euro als Preis für den SLR gelten als nicht völlig abwegige Summe.
Exklusiv und vom Feinsten ist auch der SLR-Katalog, den ColorDruck druckt.

Modernste Technik wird auch beim Druck des 116-Seiten starken Katalogs von ColorDruck eingesetzt.
Gedruckt wird komplett mit Iriodin und UV-Strukturlack. Der SLRoadster Katalog erscheint in einer
Auflage von 10.000 Exemplaren und ist das aufwendigste Druckobjekt, das ColorDruck gedruckt hat.
Alles, was modernste Drucktechnik bietet, wird hierfür eingesetzt.
Erscheinen soll es im August - rechtzeitig zur IAA.";

$treffer = strtok ($text, ".");
while ($treffer)
$x++;
echo "Treffer $x: $treffer";
echo "<br>";

?>

Es war wohl zuviel text... Aber deine Methode ist doch wesentlich eleganter :)

Danke schön für die Hilfe.

Gruß Nina

Stella
12.02.2004, 18:14:37
Ich bekomme mit deinem Script einen Parse error. Das doppelte R in strrpos hab ich schon entfernt. Aber irgendwas ist noch nicht ganz koscher...

c4
12.02.2004, 18:17:13
Das doppelte r muss sein!
Es gibt strpos() (http://php.net/strpos) und strrpos() (http://php.net/strrpos)

Ich habe das Skript so wie es dort steht aus meinem Editor kopiert, das hat zu funktionieren.
Welche Fehlermeldung denn eigentlich?

Stella
12.02.2004, 18:23:22
Parse error: parse error in /homepages/18/d11606198/htdocs/colordruck/nina.php on line 67


<?php

// der String selber

$str='Die alte Frauenkirche schien in ihrer

Bescheidenheit der barocken Residenzstadt

August des Starken nicht angemessen.';



// die ersten 100 Zeichen

$str=substr($str,_0,_100);



// von Anfang bis zum letzten Leerzeichen

$str=substr($str,_0,_strpos($str,_' '));



echo_$str;



exit;

?>

Also der fehler wäre ja gefunden...

c4
12.02.2004, 18:27:42
Ach, eine Maclerin.

Ich habe meinen Beitrag da oben mal geändert, vielleicht kannst du es jetzt ordentlich kopieren.
Wenn nicht, dann musst du die ganzen falschen(!) Unterstriche _ per Hand entfernen. Sechs Stück sollten es sein.

Stella
12.02.2004, 18:35:37
Ich hab keine "_" drin und mein Zeilenumbruch ist auf Unix gestellt.

Stella
12.02.2004, 18:37:24
es geht... wäre das strtok auf ne möglichkeit gewesen?

c4
12.02.2004, 18:38:28
Original geschrieben von Stella
Ich hab keine "_" drin und mein Zeilenumbruch ist auf Unix gestellt. Also bei deinem letzten Beitrag (http://www.selfphp.com/forum/showthread.php?s=&postid=40529#post40527) hast du sehr wohl 6 _ zu viel drin.
Falls die in deinem Editor nicht sichtbar sein sollten, so sind sie sehr wahrscheinlich trotzdem da. Schön, wa? :)



Edit: Gut, es geht. Mit strtok() hätte man es auch lösen können, ja.

Stella
12.02.2004, 18:42:20
Das kam vom kopieren in das Textfeld für php... Jetzt geht es auf jeden Fall. Es hat der Schluß gefehlt... *augenroll* Auf jeden Fall danke. Mir fehlt definitv noch das Wissen um Sachen zu kombinieren, aber ich versuch es einfach weiter. Danke, schönen Abend noch c4.

LG Nina