PHP: Gearr do sliocht as an bhfocal ag úsáid strrpos

cód html

Má tá tú ag obair le PHP agus mura dteastaíonn uait ach sliocht as do théacs foinse a thaispeáint agus é a ghearradh amach ag roinnt carachtair, is féidir go mbeidh cuma ghránna ar do sliocht má dhéantar é i lár na sreinge. Bhí orm feidhm a scríobh chun é seo a dhéanamh in asp agus in ASP.NET a rothaigh go bunúsach ón gcarachtar deireanach ar ais chun an spás deireanach a fháil agus é a ghearradh as. Cineál olc agus beagán forlíonta. Is féidir leat é seo a fheiceáil i ngníomh ar mo theach leathanach áit nach gcuirim ach na chéad 500 carachtar ar fáil.

Bhí mé lán-ullmhaithe an fheidhm chéanna a fhorbairt le PHP inniu ach fuair mé (mar is gnách) go raibh feidhm ag PHP a dhéanann é cheana, strrpos.

Tógfaidh an seanchód substring ($ ábhar) ón gcéad charachtar go dtí an líon uasta carachtar a theastaíonn uait ($ maxchars):

$ content = substr ($ ábhar, 0, $ maxchars); macalla $ ábhar;

An cód nua:

$ content = substr ($ ábhar, 0, $ maxchars); $ pos = strrpos ($ ábhar, ""); más rud é ($ pos> 0) {$ content = substr ($ ábhar, 0, $ pos); } macalla $ ábhar;

Mar sin gearrann an cód nua an t-ábhar ar dtús ag an teorainn charachtair atá á lorg agat. Is é an chéad chéim eile, áfach, an spás deireanach (”“) a lorg san ábhar. Críochnóidh $ pos mar an seasamh sin. Anois, déanaim cinnte go bhfuil spás san ábhar i ndáiríre trí fhiafraí an bhfuil $ pos> 0. Mura bhfuil, gearrfaidh sé an t-ábhar de réir líon na gcarachtar a d’iarr mé. Má tá aon spás ann, gearrfaidh sé go galánta mo chuid ábhair ag an spás.

Is bealach deas é seo chun an teaglaim den líon uasta carachtar a úsáid agus é a ghearradh amach ag an bhfocal. Tá súil agam gur mhaith leat!

Agus táim cinnte go bhfaighidh mé amach an bhfuil feidhm ASP.NET ann a dhéanann é seo ... ní raibh mé in ann ceann a fháil.

7 Comments

  1. 1
  2. 2
  3. 3
  4. 4

    Má tá $ content níos SHORTER i dtosach ná $ maxchars féachfaidh an cód mar atá scríofa fós ar dheis chun na láimhe clé le haghaidh spáis agus gearr amach an focal deireanach. Féadfaidh tú spás a thabhairt le chéile ag deireadh $ ábhar, nó más rud é (strlen ()…)

  5. 5

    Ba chosúil gur oibrigh sé seo mar fheidhm (ag tabhairt aghaidh ar an trácht roimhe seo):

    showexcerpt feidhm ($ ábhar, $ maxchars) {

    más rud é (strlen ($ content)> $ maxchars) {

    $ content = substr ($ ábhar, 0, $ maxchars);
    $ pos = strrpos ($ ábhar, "");

    más rud é ($ pos> 0) {
    $ content = substr ($ ábhar, 0, $ pos);
    }

    filleadh $ ábhar. "...";

    } {Eile

    ais $ ábhar;

    }

    }

  6. 6

    Cad a tharlaíonn má tá ár gcarachtar deiridh mar charachtar poncaíochta cosúil le lánstad, marc exclamation nó comhartha ceiste? Ar an drochuair, scriosfaidh an cód seo an focal iomlán roimh an gcarachtar poncaíochta sin.  

    Sílim go mbeadh tú níos fearr as rud éigin níos láidre a scríobh.

  7. 7

Cad é do bharúil?

Úsáideann an suíomh seo Akismet chun spam a laghdú. Foghlaim conas a dhéantar próiseáil ar do chuid tráchta.