Zum Inhalt springen

Php? RSS,Truncate, Trim, Crop & Co. in tw_rssfeed

Erstellt am 14. Juli 2012 · 4 Antworten · letzte Antwort am 25. Juli 2012

Tags: PHP, Frage

Golive ·

Hallo,

seit Stunden versuche ich meinen RSS-Feed, den ich mit der Extension tw_rssfeed eingelesen habe, ordentlich darzustellen. Dazu würde ich gerne den Text der Beschreibung kürzen. Weiß jemand wie ich den Text kürzen kann gemessen an der Anzahl der letzten Zeichen? Ich weiß, dass es sowas in PHP gibt, habe es aber leider nicht hinbekommen.

Dabei soll der Text von hinten gekürzt werden um X-Zeichen.

Bsp. Lorem ipusm dolor sit amet.

Wäre dann bei 7-Zeichen-Kürzung. Lorem ipsum dolor si

Die Stelle wo die Description eingelesen wird habe ich schon gefunden. Vielleicht hat jemand nichts anderes am Samstagnachmittag zu tun als hier die Kürzung zu ergänzen 😉

	for ($i = 1; $i <= $this->item_count; $i++) {
				$going = str_replace('<', '<', $this->data['ITEM'][$i]['TITLE']);
				$go_the_head = str_replace('>', '>', $going);
				$content .= '<tr><td><div class="twrss_bodytext twrss_item_link"><a href="'.$this->data['ITEM'][$i]['LINK'].'" target="'.$get_theLinkTarget.'" >'.$go_the_head.'</a></div></td></tr>';
				$content .= $get_thedescsep;
				if ($get_theItemDesc == "true" && isset($this->data['ITEM'][$i]['DESCRIPTION'])) {

					if ($get_html_entities !== "true") {
						$content .= '<tr><td><div class="twrss_bodytext twrss_item_content">'.$this->data['ITEM'][$i]['DESCRIPTION'].'</div></td></tr>';
					} else {
						$content .= '<tr><td><div class="twrss_bodytext twrss_item_content">'.htmlentities($this->data['ITEM'][$i]['DESCRIPTION']).'</div></td></tr>';
					}

					$content .= $get_thedescsep;
				}

				$content .= $get_theItemSeparator;
			}

Für die Hilfe bin ich sehr dankbar!

Gruß
Hans

LuP ·

Hallo,

Beispiel:

$croppedString = $cObj->stdWrap($myString, array('crop' => '60 | ... | 1'));

Allerdings kommt es hier auf die Gesamtlänge an - die Bestand haben soll - und nicht auf die wegzulassenden Zeichenfolgen. Hier wird von Anfang bis zu der vorgegebenen max. Gesamtlänge von 60 herausgeschnitten. Wenn der Wert negativ ist, wird es rückwärts gezählt.

VG,
LuP

Golive ·

Hallo LuP,

vielen Dank für Deine schnelle Hilfe!

Habe das mal auf den tw_rssfeed angepasst:

                $content .= $cObj->stdWrap($get_thedescsep; array('crop' => '60 | ... | 1'));  
		$content .= $get_thedescsep;

Da bricht der Vorgang aber irgendwie ab. Wahrscheinlich muss dort erst ein cObj erzeugt werden oder?

Beste Grüße
Hans

LuP ·

Eine Instanz von tslib_cObj müsste natürlich bereits existieren. Vielleicht heisst sie anders als $cObj. Ansonst musst Du eine neu Instanz erzeugen.

VG,
LuP