Hogyan vágjunk le egy cirill karakterláncot PHP segítségével. PHP karakterlánc kivágása: egyszerű módszerek Vágja le a php karakterlánc utolsó karaktereit

A webhely adaptív elrendezése a látogató által használt eszköztől függően megfelelő változtatásokat jelent az oldalain. Ha a blokk és inline elemek tekintetében szinte minden „automatizálható” CSS-sel és JavaScripttel, akkor tartalom generálásnál és adatbázisok használatánál a szerveroldal nélkül nehéz megtenni.

Általában levágunk egy sort a PHP-ben, ha egy HTML-elrendezési elemnek korlátozott a látható karakterek száma, de ez privát feladat.

Hagyományos megoldás

Az egyik legnépszerűbb és leggyakrabban használt függvény a substr(). Két vagy három paraméter kerül átadásra:

    forrás karakterlánc; kezdőpozíció ($iPos); a vágandó részkarakterlánc hossza ($iLen).

Az utolsó paraméter elhagyható. Ha csak két paraméter van megadva: a substr() eredménye egy részkarakterlánc lesz, a kezdő pozíciótól ($iPos) az eredeti karakterlánc végéig. Ha három paramétert adott át, akkor a PHP karakterláncot a kezdő pozícióból ($iPos) a megadott hosszúságra ($iLen) vágjuk le.

Ezzel a funkcióval csak a karakterlánc elejét lehet kiválasztani, ha az első paraméter nulla. Ha a kezdeti pozíció negatív, akkor a PHP a karakterlánc végétől kezdve a $iPos pozícióban lévő karaktert tekinti a karakterlánc kezdetének, ahonnan a karakterláncot csonkoljuk. A sorban lévő karakterek számozása nullától kezdődik.

Különleges funkció

A PHP a „sztring elvágásának” feladatát (tágabb értelemben) kontextusban tekinti: mindkét oldalról. Történelmileg ez a trim() függvény, amelynek célja a jelentéktelen karakterek eltávolítása:

    terek; sortörések; kocsi vissza; táblázatosítás; null karakter

a vonal mindkét végéről. Ez egy nagyon népszerű funkció, különösen akkor, ha adatbázisokkal dolgozik, amelyek közül a kiválasztás gyakran sok szóközt tartalmaz. Az explode() függvény használata gyakran további karaktereket is eredményez a karakterlánc elején és végén.

Azonban nem minden fejlesztő használja ki teljes mértékben a trim() függvényt. A „karakterlánc csonkítása” feladathoz a PHP a függvény második paraméterének használatát javasolja, ahol megadhat bármilyen karakterkészletet, amelyet el kell távolítani a forráskarakterláncból.


Fontos, hogy a karaktereket csak a forráskarakterlánc elejéről és végéről távolítsa el. Fontos, hogy a törölni kívánt karakterek maszkjainak és a részfeladatok sorrendjének manipulálásával.

    Először is levágtuk a PHP karakterláncot egy maszkonként. Aztán még egyet. Aztán a harmadikon.

Egy függvény használatára vonatkozó opciók sorozatának eredményeként a PHP-ben levágjuk a szöveget a feladat megoldásához.

Nem szabványos módszerek

Ha nem vesszük figyelembe a nyelv karakterlánc-függvényeinek teljes körét, akkor az explode()/implode() függvénypár és az str_replace() függvény lehetővé teszi a karakterlánc-információk „kivágásának” nem szabványos problémáinak megoldását.


A MySQL lekérdezés eredménye mindig formális a visszaadott információ szerkezetében, és az eredmény mezőinek (elemeinek) tartalmát mindig a forrás, vagyis az adatbázist tervező fejlesztő határozza meg.

Ez egy sajátos példa, de pontosan megválaszolja a kérdést: hogyan lehet levágni egy sort a PHP-ben, ha sok sor van. A trm() függvény egy sajátos, történetét olyan feladatok határozták meg, amikor nem volt sok információ, és nem kellett mást levágni, mint a jelentéktelen karaktereket.

Ma az információ nagy mennyiségben kering, és a soronkénti vágás nemcsak szükségtelen, hanem irracionális is.

A komponensekre való felosztás is lehetséges, például egy vonal kivágása. A PHP automatikusan az explode()-t használja, hogy egy nagy szöveget több szükséges sorra vágjon. Az str_replace() – azaz a karakterek egyik előfordulásának másikra cserélésével – hasonló hatást érhet el.


A feldolgozandó információ dinamikája és mennyisége elsősorban megfelelő megoldás, nem pedig egy speciális funkció használata.

Online konzultáció a weboldal karbantartásáról Uljanovszkban: ICQ# 179104682

Hogyan vágjunk le egy cirill karakterláncot PHP-vel

Cikk megjelenésének időpontja: 2014.01.06

Komoly funkcionalitással és adatbázisokkal való interakcióval rendelkező weboldal létrehozása Uljanovszkban nagyon gyakran megköveteli, hogy egy bizonyos sor ne haladja meg a meghatározott mennyiséget. Erre például azért lehet szükség, hogy korlátozzuk az adatbázis-szervernek a beviteli mező használatával továbbított karakterek számát, hogy csak egy sor egy részét jelenítsük meg a webhely oldalán (például egy listában azonos magasságú hírhirdetések létrehozásakor) és sok más feladatra.

Az első dolog, amivel a kezdő programozók találkoznak, a PHP substr függvény. Valójában karakterláncok vágására használják, és a szintaxisa egyszerű alstr(string, int start [, int hossza]), ahol az int start a kezdő karakter, amelytől a karakterlánc kivágását kezdjük, az int long paraméter pedig a kivágandó karakterek száma. Azonban egy tapasztalatlan programozó számára furcsának tűnhet, ha a PHP-ben egy cirill karakterlánc levágására próbálja használni. A cirill karakterlánccal végzett substr munka eredményeként kérdőjel vagy rombuszban lévő kérdőjel jelenhet meg a levágott karakterlánc végén, és valamilyen oknál fogva a levágott karakterek száma kétszer kevesebb, mint az int hossza paraméterben megadva. Miért történik ez?

Az a tény, hogy az UTF-8 orosz karakterei 2 bájt méretűek, a latin karakterek pedig csak 1 bájt. A PHP substr függvény egy karakterláncot bájtokra vág, nem karakterekre. Ha a karakterlánc latin karakterekből áll, akkor semmi különös nem történik, mivel a karakterek száma egybeesik a bájtok számával. És amikor a cirill ábécével dolgozunk, ahol minden karakter 2 bájtot foglal el, az int hossza paraméter könnyen a karakter „középére” eshet, és ennek eredményeként a vágási sor végén, a kimenetnél látni azt a balszerencsés kérdőjelet egy gyémántban.

Hogyan lehet helyesen kivágni egy vonal egy részét cirill ábécével?

A probléma megoldása valójában nagyon egyszerű. A cirill karaktereket tartalmazó karakterlánc helyes PHP kivágásához az iconv_substr PHP függvényt kell használni

A függvény szintaxisa egyszerű:

iconv_substr (karakterlánc, int kezdet [, int hossza [, karakterkészlet]])

Példa egy orosz nyelvű karakterlánc 80 karakteresre vágására UTF-8 kódolással az iconv_substr használatával:

$új_karakterlánc = iconv_substr ($karakterlánc, 0 , 80 , “UTF-8”);

A példában szereplő nulla azt jelenti, hogy a 80 karakter számlálása a sor legelejétől kezdődik.

Az oldal a látogató által használt eszköztől függően megfelelő változtatásokat feltételez az oldalain. Ha a blokk és inline elemek tekintetében szinte minden „automatizálható” CSS-sel és JavaScripttel, akkor tartalom generálásnál és adatbázisok használatánál a szerveroldal nélkül nehéz megtenni.

Általában levágunk egy sort a PHP-ben, ha egy HTML-elrendezési elemnek korlátozott a látható karakterek száma, de ez privát feladat.

Hagyományos megoldás

Az egyik legnépszerűbb és leggyakrabban használt függvény a substr(). Két vagy három paraméter kerül átadásra:

  • forrás karakterlánc;
  • kezdőpozíció ($iPos);
  • a vágandó részkarakterlánc hossza ($iLen).

Az utolsó paraméter elhagyható. Ha csak két paraméter van megadva: a substr() eredménye egy részkarakterlánc lesz, a kezdő pozíciótól ($iPos) az eredeti karakterlánc végéig. Ha három paramétert adott át, akkor a PHP karakterláncot a kezdő pozícióból ($iPos) a megadott hosszúságra ($iLen) vágjuk le.

Ezzel a funkcióval csak a karakterlánc elejét lehet kiválasztani, ha az első paraméter nulla. Ha a kezdeti pozíció negatív, akkor a PHP a karakterlánc végétől kezdve a $iPos pozícióban lévő karaktert tekinti a karakterlánc kezdetének, ahonnan a karakterláncot csonkoljuk. A sorban lévő karakterek számozása nullától kezdődik.

Különleges funkció

A PHP a „sztring elvágásának” feladatát (tágabb értelemben) kontextusban tekinti: mindkét oldalról. Történelmileg ez a trim() függvény, amelynek célja a jelentéktelen karakterek eltávolítása:

  • terek;
  • sortörések;
  • kocsi vissza;
  • táblázatosítás;
  • null karakter

a vonal mindkét végéről. Ez egy nagyon népszerű funkció, különösen akkor, ha adatbázisokkal dolgozik, amelyek közül a kiválasztás gyakran sok szóközt tartalmaz. Az explode() függvény használata gyakran további karaktereket is eredményez a karakterlánc elején és végén.

Azonban nem minden fejlesztő használja ki teljes mértékben a trim() függvényt. A „karakterlánc csonkítása” feladathoz a PHP a függvény második paraméterének használatát javasolja, ahol megadhat bármilyen karakterkészletet, amelyet el kell távolítani a forráskarakterláncból.

Fontos, hogy a karaktereket csak a forráskarakterlánc elejéről és végéről távolítsa el. Fontos, hogy a törölni kívánt karakterek maszkjainak és a részfeladatok sorrendjének manipulálásával.

  • Először is levágtuk a PHP karakterláncot egy maszkonként.
  • Aztán még egyet.
  • Aztán a harmadikon.

Egy függvény használatára vonatkozó opciók sorozatának eredményeként a PHP-ben levágjuk a szöveget a feladat megoldásához.

Nem szabványos módszerek

Ha nem vesszük figyelembe a nyelv karakterlánc-függvényeinek teljes körét, akkor az explode()/implode() függvénypár és az str_replace() függvény lehetővé teszi a karakterlánc-információk „kivágásának” nem szabványos problémáinak megoldását.

A MySQL lekérdezés eredménye mindig formális a visszaadott információ szerkezetében, és az eredmény mezőinek (elemeinek) tartalmát mindig a forrás, vagyis az adatbázist tervező fejlesztő határozza meg.

Ez egy sajátos példa, de pontosan megválaszolja a kérdést: hogyan lehet levágni egy sort a PHP-ben, ha sok sor van. A trm() függvény egy sajátos, történetét olyan feladatok határozták meg, amikor nem volt sok információ, és nem kellett mást levágni, mint a jelentéktelen karaktereket.

Ma az információ nagy mennyiségben kering, és a soronkénti vágás nemcsak szükségtelen, hanem irracionális is.

A komponensekre való felosztás is lehetséges, például egy vonal kivágása. A PHP automatikusan az explode()-t használja, hogy egy nagy szöveget több szükséges sorra vágjon. Az str_replace() – azaz a karakterek egyik előfordulásának másikra cserélésével – hasonló hatást érhet el.

A feldolgozandó információ dinamikája és mennyisége elsősorban megfelelő megoldás, nem pedig egy speciális funkció használata.

Funkció alstr($karakterlánc, $start, $hosszúság) , ahol a $string egy változó szöveggel, a $start a karakter, amelytől a visszaszámlálás kezdődik (a 0 lesz az első karakter), a $hossz pedig a karakterek száma kiválasztott szöveg.

$text = "Példa és szöveg";

$első = substr($szöveg,0,6); // 6 karaktert jelenít meg a 0-tól kezdve, a legelsőtől
echo $első; // kiírja az "Examp" parancsot.

$másodperc = substr($szöveg,8,3); // 3 karaktert jelenít meg a 8-tól kezdve
echo $second; // kiírja az "és" kifejezést
Ha nem adja meg a Karakterek száma (2. számjegy) paramétert, a funkció megjeleníti az összes fennmaradó karaktert

$text = "Példa és szöveg";

$harmadik = substr($szöveg,8); // Az ÖSSZES karaktert megjeleníti a 8-tól kezdve
echo $harmadik; // kiírja az "és szöveget"

Orosz szöveg kivágása az mb_substr PHP függvény segítségével

Funkció mb_substr ugyanazokat a feladatokat látja el, mint alstr, de képes többbyte-os kódolások kezelésére is. Ezért az orosz szöveg esetében hasznos lesz az Ön számára mb_substr. Ugyanúgy működik

$text = "Példaszöveg";

$első = mb_substr($szöveg,0,6"UTF-8"); // 6 karaktert jelenít meg a 0-tól kezdve, a legelsőtől
// Figyelem! Adja meg a forrásszöveg kódolását! Ebben az esetben az utf-8
echo $első; //megjelenik az "Example"

$másodperc = mb_substr($szöveg,7,6"UTF-8"); // 6 karaktert jelenít meg a 7-től kezdve
echo $second; // megjeleníti a "szöveget"
Kérjük, vegye figyelembe, hogy cirill (orosz szöveg) esetén célszerű a kódolást a függvény végén feltüntetni. A példa a legnépszerűbb opciót használja - UTF-8

A szöveg levágása a végétől

Ha a szöveget a végétől szeretné vágni, akkor ehhez negatív számot fogunk jelezni a változóhoz, amely jelzi, hogy melyik karaktertől kezdődik a szövegkijelölés

$text = "Sprite és Fanta";

$első = substr($szöveg,-6,5); // 5 karaktert jelenít meg a hatodiktól kezdve a végétől
echo $első; //a "Fant" kinyomtatása

A kivágás után szöveget is adunk hozzá

Miután a változót levágta a szöveggel, adjon hozzá további szöveget a végéhez

$example = "Szöveges szöveg szövege";

$példa = substr($példa,0,9); // 9 karaktert jelenít meg a 0-tól kezdve, a legelsőtől
$example .= "tovább...";
echo $példa; //megjelenik a "Szöveges szöveg tovább..."
Éppen ellenkezőleg, az elején készíthet felvételt, majd vághatja le a szöveget

$text = "Bácsi";

$example = "George és Michael";
$példa = substr($példa,0,6); // 6 karaktert jelenít meg a 0-tól kezdve, a legelsőtől
$szöveg .= $példa;
echo $szöveg; //nyomtatja: "György bácsi"

Szöveg kivágása az első helyre

$text = "Helló világ!";
echo substr($szöveg, 0, strpos($szöveg, " ")); // Kinyomtatja a "Hello" szöveget

Kész PHP funkció szövegvágáshoz PHP Words segítségével

függvény cut($karakterlánc, $hossz)(
$karakterlánc = mb_substr($karakterlánc, 0, $hossz,"UTF-8"); // vágja ki és dolgozzon az összes kódolással, és jelezze a forráskódolást
$pozíció = mb_strrpos($karakterlánc, " ", "UTF-8"); // határozza meg az utolsó szóköz helyét. Ezzel választjuk el a szavakat.
$karakterlánc = mb_substr($karakterlánc, 0, $pozíció, "UTF-8"); // Vágja le a változót pozíció szerint
return $string;
}

$text = "Az északi háború 1721-ben ért véget";
echo cut($szöveg, 17); // az "Északi háborút" jeleníti meg, a "vége" szó része nélkül

Szavakkal vághatsz egy tömbön keresztül...

$text = "A Microsoftot Bill Gates alapította még 1975-ben.";

$tömb = explode(" ",$szöveg); // feldolgozza a karakterláncot tömbbé
$tömb = tömb_szelet($tömb,0.5); // válassza ki az első 5 szóelemet
$újszöveg = implode(" ",$tömb); // visszaalakítja a tömböt karaktersorozattá

Echo $newtext;// Megjelenik: "A Microsoftot Bill Gates alapította"

 

Hasznos lehet elolvasni: