substr

Tags:    php

<< < 12 > >>
Hej,

Vil have benyttet denne i "Sidst skrevet nyhed", men den må bare ikke lave linje skift. Men faktisk bare vise det i samme række, indtil max er opnået. Eks: 100.

Selvfølgelig hvis den er for lang til en række, må den selvfølgelig gerne gå til ny linje.

echo substr($row['text'], 0, 100);

Hvis der er flere linje skift i nyhedens text, så viser den det på den måde også. Det skal stå ud i et, men med max 100.

Kan man rette dette?

Se foto: Link

Der kan i se den laver linje skift ud fra nyhedens text. Som den ikke må.



Indlæg senest redigeret d. 04.09.2014 17:15 af Bruger #17554
11 svar postet i denne tråd vises herunder
6 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Lav en replace af linjeskift til en anden karakter i stedet.

F.eks:

Fold kodeboks ind/udPHP kode 


Så får du et punktum i stedet for linjeskiftet. Du skal stadig lave din substring også.



Måske jeg har misforstået, men hvis du laver en replace af alle linjeskift med . så har du ikke linjeskift og du får dem vist på én linje.

Så bliver:

Fold kodeboks ind/udKode 


lavet om til

Fold kodeboks ind/udKode 








Leder du efter en færdig kombo?

Fold kodeboks ind/udPHP kode 




Det Jonathan vil gøre er at erstatte dine linie skift med noget andet. Han foreslår et punktum. Hvilket måske er lidt fjollet. Men fair nok. Han bruger funktionen str_replace der kan erstatte tekst med noget andet tekst. Str_replace kan bruges på flere måder. Den måde Jonathan bruger tager et array af ting den skal finde og en ting den skal erstatte det med. \n og \r er specielle karaktere der repræsentere linieskifte og "charage return" ... Forestil dig en gammel skrivemaskine hvor \n betyder ny linie og \r fortæller du skal flytte curseren tilbage til højre.

Men. Jeg tror han måske har overset at dine linieskift kan være <br> eller <br/> eller <br /> så dem skal vi lige tilføje:

Fold kodeboks ind/udPHP kode 


Prøv det i stedet.



Hvordan er dine linieskift lavet?



du skal nok bare bruge strip_tags i stedet.



Den forstod jeg desværre ikke helt.

echo str_replace(array("\r\n", "\n", "\r"), '.', $row['text']);
//echo substr($row['text'], 0, 100);

Du vil have jeg får den printet ud via str_replace ud af funktionen substr?



Det den sidste eksempel jeg leder efter.



Nej, men lidt hjælp til at kunne forstå hvad der menes med det. Så jeg selv kunne prøve det af.

Men den du skrev, virker heller ikke. Den viser den på samme måde som det billede jeg tilføjede i trådens topic.



Okay.

Tror måske i alle har misforstået mig. :B

Prøver igen.

Viser et billede som den kode gjorde til forskel fra mit eget.
Billedet: Link

Den skal i stedet gør således: Link

Men igen, med max charter visning i $row['text'] - så den ikke viser hele nyheden, men i et mindre bid på ca. 100 tegn.

Linjeskift skal den ikke vise - men blot holde den i en linje hvor den ses nu i eksempel(billede).


Kan i følge mig nu? :pirat:

Tusind tak for hjælpen alle sammen.



Indlæg senest redigeret d. 04.09.2014 21:26 af Bruger #17554
<< < 12 > >>
t