Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

variabel kürzen

Diskussion: variabel kürzen im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Moin, ich hab mal ne Frage Bsp: $text="HALLO 1234567890"; echo $text; ist ja dann HALLO 1234567890 wenn ich das ...

Antwort
Alt 03.04.06, 20:55   #1 (permalink)
 
Registriert seit: 28.12.05
bimbo510 Leistung: Facit NTK
bimbo510 eine Nachricht über ICQ schicken
Likes: 0
variabel kürzen

Anzeige

Moin,
ich hab mal ne Frage

Bsp:

$text="HALLO 1234567890";
echo $text;

ist ja dann

HALLO 1234567890

wenn ich das jetzt aber von der länge her begrenzen will zbsp das die ausgabe

HALLO 1...

ist, wie macht man das?

vll müsstet ihr noch wissen, das der $text aus einer DB ausgelesen wird..

MFG Philipp

bimbo510 ist offline   Mit Zitat antworten
Alt 03.04.06, 21:30   #2 (permalink)
 
Registriert seit: 26.11.05
meadow Leistung: Facit NTK
meadow eine Nachricht über ICQ schicken
Likes: 0
Standard

www.php4-forum.de unter befehle steht alles was du wissen musst
meadow ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 03.04.06, 21:32   #3 (permalink)
 
Registriert seit: 20.07.05
CPU8080 Leistung: Facit NTK
CPU8080 eine Nachricht über ICQ schicken
Likes: 0
Standard RE: variabel kürzen

Zitat:
Original von bimbo510
$text="HALLO 1234567890";
echo $text;


HALLO 1...

ist, wie macht man das?
Ganz einfach:

PHP-Code:
 
$Anzahl 
5//Wie viele Zeichen
for ($x=0;$x<$Anzahl;$x++)
{
echo 
$test["$x"];
}
echo 
"..."
EDIT: Naja 2 minto late^^
CPU8080 ist offline   Mit Zitat antworten
Alt 03.04.06, 21:57   #4 (permalink)
 
Registriert seit: 17.01.06
Oi!Alex Leistung: 8086
Likes: 7
Standard

Das gleiche problem hab ich ebendfalls schon mal vor mir gehabt und auf folgende art und weise gelöst, ich habe mir einfach eine funktion geschrieben

PHP-Code:
function kurz($word)
{

      
$maxZeichen 35   // Zeichen Anzahl 

    
if (strlen($word) > $maxZeichen)
    {
        
$word substr($word,0,($maxZeichen-3));  // String wird gekürzt mit zusätzlichen 3 zeichen damit platz für die 3 punkte ist - im regel fall reichen 2 aus
        
$word $word "...";
    }
    
    return 
$word;

habs noch fix etwas abgewandelt und kommentiert
Oi!Alex ist offline   Mit Zitat antworten
Alt 03.04.06, 23:15   #5 (permalink)
Themenstarter
 
Registriert seit: 28.12.05
bimbo510 Leistung: Facit NTK
bimbo510 eine Nachricht über ICQ schicken
Likes: 0
Standard

hab das jetz versucht einzubauen..
ersma ohne funktion etc..

PHP-Code:
                      if($sub=="community")
                         {
//***********************************************************************************************                         
echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"116\" id=\"$sub\">\n";
//Daten aus Datenbank abfragen
$abfrage "SELECT * FROM sublinks_$sub";
$ergebnis mysql_query($abfrage);
while(
$row mysql_fetch_object($ergebnis))
   {
   
$linktyp $row->typ;
   
$linkname $row->linkname;
   
$maxZeichen 12;   // Zeichen Anzahl 
   
if (strlen($linkname) > $maxZeichen)
   {
   
$linkname substr($linkename,0,($maxZeichen-3));  // String wird gekürzt mit zusätzlichen 3 zeichen damit platz für die 3 punkte ist - im regel fall reichen 2 aus
   
$linkname $linkname."...";
   }
   echo 
"    <tr><td width=\"20\" ><font style=\"display: none;\" id=\"$linkname\"><img src=\"Bilder/pfeil.gif\" width=\"20\"></font></td>
<td width=\"96\" align=\"left\">\n"
;

if (
$linktyp=="extern"
{
echo 
"<a class=\"sub\" href=\"".$row->url."\">";

if (
$linktyp=="intern"
{
echo 
"<a class=\"sub\" href=\"".$row->url."&sub=$sub\">";
}
else
{
}

echo 
"
<font align=\"left\" face=\"Comic Sans MS\" onMouseover=\"javascript:document.getElementById('$linkname').style.display = '';\" onMouseout=\"javascript:document.getElementById('$linkname').style.display = 'none';\">$linkname</font></a></td></tr>\n"
;
   }

echo 
"</table>\n";            
                     
                                   
//***********************************************************************************************                         
                         
}   
                      else
                         {
//***********************************************************************************************                         
                         
echo "";
//***********************************************************************************************                         
                         

ausgegeben wird $linkname..allerdings ungekürzt..
danke im voraus..philipp
bimbo510 ist offline   Mit Zitat antworten
Alt 03.04.06, 23:50   #6 (permalink)
 
Registriert seit: 20.07.05
CPU8080 Leistung: Facit NTK
CPU8080 eine Nachricht über ICQ schicken
Likes: 0
Standard

check ma ob er an bestimmten Stellen die Werte also z.b. ob er in die 2 if schleife (Zeile 13) durchkommt, weil die Zuweisung der $Linkname hat ja funktioniert weil du die Variable ungekürzt zurück bekommst. Also denk ich mal er rutsch in diese If Schleife nicht rein. Und der Linkname hat doch mind. 13 Buchstaben oder???
CPU8080 ist offline   Mit Zitat antworten
Alt 04.04.06, 01:52   #7 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Lightbulb

Smarty hat einen entsprechenden Modifier, um Texte abzukürzen. Dessen Funktion sieht so aus:

PHP-Code:
function smarty_modifier_truncate($string$length 80$etc '...',
                                  
$break_words false)
{
    if (
$length == 0)
        return 
'';

    if (
strlen($string) > $length) {
        
$length -= strlen($etc);
        if (!
$break_words)
            
$string preg_replace('/\s+?(\S+)?$/'''substr($string0$length+1));

        return 
substr($string0$length).$etc;
    } else
        return 
$string;

__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
Alt 04.04.06, 15:34   #8 (permalink)
Themenstarter
 
Registriert seit: 28.12.05
bimbo510 Leistung: Facit NTK
bimbo510 eine Nachricht über ICQ schicken
Likes: 0
Standard

also die funktion davor hab ich mit langem studieren und testen verstanden..
aber die jetz nich mehr..
kann mir vll wer sagen wo der fehler liegt als ichs eingebaut habe? ich probier ma das was CPU(=(= mir gesagt hat..
werde euch bericht erstatten..^^
bimbo510 ist offline   Mit Zitat antworten
Alt 04.04.06, 15:48   #9 (permalink)
 
Registriert seit: 17.01.06
Oi!Alex Leistung: 8086
Likes: 7
Standard

ich habe meine funktion oben mal getestet also müsste eigentlich ohne probleme funktionieren habe nur ein ; vergessen ...

hier noch mal ein "test script"

PHP-Code:
$teststring "123456789011121314151617181920212223";

print(
$teststring);
print(
"<br>");
print(
kurz($teststring));


function 
kurz($word)
{

      
$maxZeichen 5;   // Zeichen Anzahl

    
if (strlen($word) > $maxZeichen)
    {
        
$word substr($word,0,($maxZeichen-3));  // String wird gekürzt mit zusätzlichen 3 zeichen damit platz für die 3 punkte ist - im regel fall reichen 2 aus
        
$word $word "...";
    }

    return 
$word;


die methode die CPU8080 nutzt funktioniert zwar auch aber ist sehr uneffektiv und einfach nur schlechter programmiert als meine methode

bei meiner methode wird letz endlich ermittelt wieviele zeichen das wort hat, wenn das wort weniger als die maximalen zeichen hat ab wann die "..." kommen sollen passiert nichts und das wort wird einfach so wieder zurück gegeben, wenn es aber mehr hat dann wird das wort gekürzt so das es so lang ist wie die maximale anzahl der zeichen incl. 3 zusätzlichen für "..." und dann als wieder zurück gegeben...

bei CPU8080 seiner methode fällt mir gerade auf der er IMMER "..." anhängt und das sollte ja auch nicht im sinne der problematik sein aber selbst wenn man den fehler bereinigt ist es schlecht jeden einzelnen buchstaben einzeln per echo anzeigen zu lassen mit hilfe der for schleife...
Oi!Alex ist offline   Mit Zitat antworten
Alt 04.04.06, 18:37   #10 (permalink)
Themenstarter
 
Registriert seit: 28.12.05
bimbo510 Leistung: Facit NTK
bimbo510 eine Nachricht über ICQ schicken
Likes: 0
Standard

hab alles hinbekommen..
der code wa richtig.. hatte die ganze zeit am falschen submenü gebastelt..
trotzdem nochmals vielen dank..
bimbo510 ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » variabel kürzen
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
verwendung der nicht zugewiesenen variabel c Schnauf Code Kitchen 8 17.10.08 14:47
Programm zum beschneiden/kürzen von Dateien ivegotmail Applikationen 3 20.08.07 19:07
variabel prüfen ba2 (Web-) Design und webbasierte Sprachen 1 01.07.06 08:09
nicht difinierte Variabel ba2 (Web-) Design und webbasierte Sprachen 22 28.12.05 15:35


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61