strings nur teilweise anzeigen lassen

Hi erstmal, sorry dass mir kein besserer Titel einfällt, aber naja.

Folgendes Problem:

Wie kann ich es realisieren (wenn es überhaupt geht), dass ein String (zB eine Überschrift) in PHP ab einer gewissen Länge nicht mehr angezeigt wird? Also praktisch ne Newsbox in der die Themen der letzten News stehen. Die box is zB 150 px breit, wenn jetzt aber eine Überschrift 200 pixel lang ist, will ich dass diese bei ca 145px abgebrochen wird, und stattdessen ein "..." hinzugefügt wird.

Beispiel:

Das Forum ist ab dem 00.00.00 online!

wenn diese News zu lang sind, soll mir mein script etwas wie

Das Forum ist ab dem...

zurückgeben.

Geht das überhaupt?
 
für das string problem:

PHP:
$h1="Ueberschrift 1 blabla noch mehr text";
$ueberschrift="";
if(strlen($h1)>16){
    $ueberschrift=substr($h1,0,16)."...":
}
// -> "Ueberschrift 1 bla..."

geht sicher schöner aber als kleiner lösungsvorschlag ;)
 
so, danke erstmal für die antworten :)

aber ich bin mir jetzt relativ sicher, dass man mein Problem so gar nicht lösen kann, weil was ist, wenn die Breite der Box in der die Überschriften stehen sich verändert? Es gibt via PHP doch keine Möglichkeit die Breite eines <div> herauszufinden oder?
 
jain,

ich bin mir nicht sicher sollte javascript das können kannst du dies via ajax realisieren.
wenn mir jemand nen javascriptcode postet mit dem man die breite des divs auslesen kann kann ich dir das in ein ajax script verpacken :)
 
Ich hab dir mal ein kleines Script gebastelt. Im Firefox funktioniert es so, ob das mit anderen Browsern genau so geht, weiß ich nicht.

Code:
<div id="meinDiv" style="overflow:hidden;width:200px;border:1px solid red;">
EinBisschenSinnloserTextZurDemonstration
</div>

<script>
function resizeElement(id)
{
  elem = document.getElementById(id);
  while (elem.scrollWidth > elem.clientWidth) {
    elem.innerHTML = elem.innerHTML.substr(0, elem.innerHTML.length-4) + "...";
  }
}
resizeElement("meinDiv");
</script>
 
Zurück
Oben