ከ PHP ጋር አብረው የሚሰሩ ከሆኑ እና ከምንጭ ጽሑፍዎ ላይ የተቀነጨበ ጽሑፍን ብቻ ለማሳየት እና በበርካታ ቁምፊዎች ላይ ለመቁረጥ ከፈለጉ ፣ የእርስዎ የተቀረጸ ጽሑፍ በመካከለኛ-ክር ከተሰራ አስቀያሚ ሊመስል ይችላል። ይህንን ቦታ በ ASP እና በ ASP.NET ውስጥ ለመጨረሻ ጊዜ ቦታ ለማግኘት እና እዚያ ለመቁረጥ በመሠረቱ ከባለፈው ገጸ-ባህሪይ በብስክሌት የሚከናወን ተግባር መፃፍ ነበረብኝ ፡፡ ዓይነት መጥፎ እና ትንሽ ከመጠን በላይ። በእውነቱ ቤቴ ላይ ይህንን በተግባር ማየት ይችላሉ ገጽ የመጀመሪያዎቹን 500 ቁምፊዎች ብቻ የምሰጥበት ፡፡
ዛሬ ከ PHP ጋር ተመሳሳይ ተግባር ለማዳበር ሙሉ ዝግጁ ነበርኩ ነገር ግን (እንደተለመደው) ፒኤችፒ ቀድሞውኑ የሚሰራ ተግባር እንዳለው አገኘሁ ፣ strrpos.
አሮጌው ኮድ ከመጀመሪያው ቁምፊ እስከ የሚፈልጉት ከፍተኛ የቁምፊዎች ብዛት ($ maxchars) ንጣፍ ($ ይዘትን) ይወስዳል-
$ ይዘት = substr ($ ይዘት ፣ 0 ፣ $ maxchars); አስተጋባ $ ይዘት;
አዲሱ ኮድ
$ ይዘት = substr ($ ይዘት ፣ 0 ፣ $ maxchars); $ pos = strrpos ($ ይዘት, ""); ከሆነ ($ pos> 0) {$ content = substr ($ content, 0, $ pos); } $ ይዘት አስተጋባ;
ስለዚህ አዲሱ ኮድ መጀመሪያ የሚፈልጉትን የባህሪ ገደብ ይዘቱን ያቋርጠዋል ፡፡ ሆኖም ፣ ቀጣዩ ደረጃ በይዘቱ ውስጥ የመጨረሻውን ቦታ (”“) መፈለግ ነው። $ ፖዝ ያንን ቦታ ይሆናል ፡፡ አሁን በቀላሉ $ pos> 0 በመጠየቅ በይዘቱ ውስጥ በእውነት ቦታ እንደሚገኝ አረጋግጣለሁ ፡፡ ከሌለ ይዘቱን በጠየኩት የቁምፊዎች ብዛት ብቻ ያቋርጣል። ቦታ ካለ ፣ ይዘቴን በቦታው ላይ በፀጋው ያቆራኛል።
ይህ ከፍተኛውን የቁምፊዎች ብዛት ጥምርን በመጠቀም እና በቃሉ ላይ ለመቁረጥ ጥሩ መንገድ ነው። እንደወደዱት ተስፋ!
እና ይህን የሚያደርግ የ ASP.NET ተግባር ካለ አገኘዋለሁ እርግጠኛ ነኝ one አንድ ማግኘት አልቻልኩም ፡፡
ዳግ ፣ በ C # ውስጥ በ PHP ውስጥ strrpos ምን እንደሚሰራ ለማድረግ String.LastIndexOf ዘዴን መጠቀም ይችላሉ።
ያ እንደሚከሰት አውቅ ነበር! 🙂
እናመሰግናለን አቢጂት!
በጣም ጥሩ! ልክ እኔ የምፈልገውን ነበር ፡፡ አመሰግናለሁ.
$ ይዘት መጀመሪያ ከ $ maxchars በላይ SHORTER ከሆነ እንደተጻፈው ኮድ አሁንም ለጠፈር ግራ ከቀኝ ይመለከታል እና የመጨረሻውን ቃል ያጭዳል። በ $ ይዘት መጨረሻ ላይ አንድ ቦታን በአንድ ላይ ማሳተፍ ወይም if (strlen ()…) ማድረግ ይችላሉ
ይህ እንደ ተግባር የሚሰራ ይመስላል (የቀደመውን አስተያየት በመመለስ ላይ)
የተግባር ሸራፊኬት ($ ይዘት ፣ $ maxchars) {
ከሆነ (strlen ($ ይዘት)> $ maxchars) {
$ ይዘት = substr ($ ይዘት ፣ 0 ፣ $ maxchars);
$ pos = strrpos ($ ይዘት, "");
ከሆነ ($ pos> 0) {
$ ይዘት = substr ($ ይዘት ፣ 0 ፣ $ ፖስ);
}
$ ይዘት ይመልሱ። "…";
} else {
$ ይዘት ይመለሱ
}
}
የመጨረሻው ገጸባህሪያችን እንደ ሙሉ-ማቆሚያ ፣ እንደ አጋኖ ምልክት ወይም እንደ ጥያቄ ምልክት ስርዓተ-ነጥብ ገጸ ባህሪ ቢሆንስ? እንደ አለመታደል ሆኖ ይህ ኮድ ከዚህ በፊት የተናገረውን የስርዓተ-ነጥብ ባህሪን በሙሉ ያብሳል ፡፡
ትንሽ ጠንከር ያለ ነገር ቢጽፉ የተሻለ ይመስለኛል።
እንደዚህ ያለ ጥሩ ሀሳብ!