Sākumlapa › Forumi › Mājas lapu izstrāde › Servera puse (php, java, ruby, perl, python) › Kā lai no variabļa dabū ārā noteiktu skaitu burtu?
Karoč man ir mainīgais kurā ir, piemēram, tūkstotis burtu (teksts).
Kā lai no viņa izdabū arā (echo) TIKAI pirmos simts burtus ?
Paldies.
string substr ( string $string , int $start [, int $length ] )
funkcijas vārds
Visiem, kuri latvijā ieteiks substr lietot, došu pa asti. 🙂 Multy-bite failure expected…
Atkal līmi osti? pšš…
aaaaaš
a= 1 byte
š= 2 bytes
tatad kopējais garums – 7 bytes.
Apgriežot tekstu uz 6 simboliem ar substrMB saderīgas funkcijasmb_substr
#Wuu, aizver žjaunu. Pok3mons. 🙂
Multy-bite Multi-byte
Īsumā- vairums latviešu burtu ir multy-byte, TB to garums ir nevis kā klasiski- 1 byts, bet gan 2. Substr nav multy-bite atbalstoša funkcija, tādēļ tā “pārgriež” multy-byte burtus uz pusēm parvēršot tos simbolos. Piemēram mums ir teksts no 6 burtiem,
aaaaaš
a= 1 byte
š= 2 bytes
tatad kopējais garums – 7 bytes.
Apgriežot tekstu uz 6 simboliem ar substrMB saderīgas funkcijasmb_substr
Nu viss skaidrs.. paldies liels. Domāju ka pats tikšu galā jo atradu vēl materiālus par šo. Tieši viss sanāca ar Substr, bet ja tāda tā lieta, tad skatīšu citus variantus, bet maķenīt gudrāks paliku. Paldies par to
Vēl var izmantot ko šādu!
function wordCut($sTeksts, $maksimalais_garums, $sZinjas_beigas)
{
if (strlen($sTeksts) > $maksimalais_garums)
{
$sString = wordwrap($sTeksts, ($maksimalais_garums-strlen($sZinjas_beigas)), ‘[cut]’, 1);
$asExplodedString = explode(’[cut]’, $sString);
echo $sCutText = $asExplodedString[0];
$sReturn = $sCutText.$sZinjas_beigas;
}
else
{
echo $sTeksts;
}
return $sReturn;
}
Pielietojums:
/// Ievadi tekstu pie $teksts kuru vajag noskaldiit mazaaku
/// otrais mainiigais ir teksta garums kuru vajag noskaldit nost – piemeram sheit no teksta paradas 100 simboli…
/// teksta noraavums – piemeram daudzpunkte beigaas, vai punktu vieta var likt (Lasit talak) – atkariibaa kaa tev vajag
wordCut($teksts, 100, ‘…’);
Multy-bite Multi-byte
W000t, atvaino, svētdienas vakars, pudele ruma. 🙂
@Autoram, es taču jau iedevu risinājumu:
function uCrop($text,$lenght) {
if (strlen($text) > $lenght) {
$text = substr($text,0,$lenght);
$text = trim($text);
$text = explode(” “, $text, -1);
$text = implode(” “,$text);
}
return $text;
}
paamtā nosaka strlen, tad apcērpj, neskaitot baitus! 🙂
Atvainojos ka velku ārā vecu tēmu, bet jaunu taisīt nav vērts, jo temats tas pats, tikai šoreiz radās cita problēma.
Izmantoju Andress doto funkciju:
Funkcija atrodas šeit.
Izsaukt:
echo mb_substrws( $teksts_kuru_apgriezt, ‘200’);
kur 200 ir skaitlis, cik simbolus gribi paradit.
Funkciju pielietoju šeit:
[img]
(To var redzēt iekš
Taču nezin kāda iemesla dēļ dažreiz simbolu skaits pie lapas refrešošanas mainās lūk šādi:
[img]
Respektīvi tad vairāk simbolu, tad mazāk.
Un tas notiek tikai pie refrešošanas vai ieešanas citā sadaļā, un pats jokainākais ir tas, ka tas notiek tikai dažreiz, varētu pat teikt ka reti – ne pie katras refrešošanas. Pētīju to funkciju ar savām pašdarbnieciskajām php zināšanām, bet gudrs netiku.
Varbūt kāds zinošāks varētu pateikt kur slēpjas āķis?
Preses relīzes