நீங்கள் PHP உடன் பணிபுரிகிறீர்கள் என்றால், உங்கள் மூல உரையிலிருந்து ஒரு பகுதியை மட்டுமே காண்பிக்க விரும்பினால், அதை பல எழுத்துக்களில் துண்டிக்க விரும்பினால், உங்கள் பகுதி நடுப்பகுதியில் சரம் முடிந்தால் அசிங்கமாக இருக்கும். ஏஎஸ்பி மற்றும் ஏஎஸ்பி.நெட்டில் இதைச் செய்ய நான் ஒரு செயல்பாட்டை எழுத வேண்டியிருந்தது, இது கடைசி இடத்திலிருந்து மீண்டும் சுழற்சியைக் கொண்டு கடைசி இடத்தைக் கண்டுபிடித்து அதை அங்கேயே துண்டித்துவிட்டது. ஒருவித மோசமான மற்றும் கொஞ்சம் அதிகப்படியான கொலை. எனது வீட்டில் இதை நீங்கள் உண்மையில் பார்க்கலாம் பக்கம் நான் முதல் 500 எழுத்துக்களை மட்டுமே வழங்குகிறேன்.
இன்று PHP உடன் அதே செயல்பாட்டை உருவாக்க நான் முழுமையாக தயாராக இருந்தேன், ஆனால் PHP க்கு ஏற்கனவே ஒரு செயல்பாடு இருப்பதைக் கண்டறிந்தேன் (வழக்கம் போல்), ஸ்ட்ரர்போஸ்.
பழைய குறியீடு முதல் எழுத்தில் இருந்து நீங்கள் விரும்பும் அதிகபட்ச எழுத்துகளுக்கு ($ அதிகபட்சம்) ஒரு மூலக்கூறு ($ உள்ளடக்கம்) எடுக்கும்:
$ content = substr ($ content, 0, $ maxchars); எதிரொலி $ உள்ளடக்கம்;
புதிய குறியீடு:
$ content = substr ($ content, 0, $ maxchars); $ pos = strrpos ($ உள்ளடக்கம், ""); if ($ pos> 0) {$ content = substr ($ content, 0, $ pos); } எதிரொலி $ உள்ளடக்கம்;
எனவே புதிய குறியீடு முதலில் நீங்கள் தேடும் எழுத்து வரம்பில் உள்ளடக்கத்தை துண்டிக்கிறது. இருப்பினும், அடுத்த கட்டம் உள்ளடக்கத்தில் கடைசி இடத்தை (”“) தேடுவது. os pos அந்த நிலையில் இருக்கும். இப்போது, $ pos> 0 என்று கேட்பதன் மூலம் உள்ளடக்கத்தில் உண்மையில் ஒரு இடம் இருப்பதை நான் உறுதி செய்கிறேன். இல்லையென்றால், நான் கோரிய எழுத்துகளின் எண்ணிக்கையில் அது உள்ளடக்கத்தை துண்டித்துவிடும். ஏதேனும் இடம் இருந்தால், அது எனது உள்ளடக்கத்தை விண்வெளியில் அழகாக துண்டித்துவிடும்.
அதிகபட்ச எண்ணிக்கையிலான எழுத்துகளின் கலவையைப் பயன்படுத்துவதற்கும், அதை வார்த்தையில் வெட்டுவதற்கும் இது ஒரு சிறந்த வழியாகும். நீங்கள் விரும்புவீர்கள் என்று நம்புகிறேன்!
இதைச் செய்யும் ஏஎஸ்பி.நெட் செயல்பாடு இருக்கிறதா என்று நான் கண்டுபிடிப்பேன் என்று நான் நம்புகிறேன் ... என்னால் ஒன்றைக் கண்டுபிடிக்க முடியவில்லை.
டக், சி # இல் நீங்கள் ஸ்ட்ரிங்போஸ் PHP இல் என்ன செய்ய வேண்டும் என்பதை சரம்.லாஸ்ட்இண்டெக்ஸ்ஆஃப் முறையைப் பயன்படுத்தலாம்.
அது நடக்கும் என்று எனக்குத் தெரியும்! 🙂
நன்றி, அபிஜித்!
அருமை! நான் தேடிக்கொண்டிருந்தேன். நன்றி.
$ உள்ளடக்கம் ஆரம்பத்தில் $ maxchars ஐ விட குறுகியதாக இருந்தால், எழுதப்பட்ட குறியீடு இன்னும் ஒரு இடத்திற்கு வலமிருந்து இடமாகத் தோன்றும் மற்றும் கடைசி வார்த்தையை வெட்டுகிறது. நீங்கள் $ உள்ளடக்கத்தின் முடிவில் ஒரு இடத்தை ஒன்றிணைக்கலாம் அல்லது if (strlen ()…) செய்யலாம்
இது ஒரு செயல்பாடாக செயல்படுவதாகத் தோன்றியது (முந்தைய கருத்தை உரையாற்றுகிறது):
செயல்பாடு showexcerpt ($ content, $ maxchars) {
if (strlen ($ content)> $ maxchars) {
$ content = substr ($ content, 0, $ maxchars);
$ pos = strrpos ($ உள்ளடக்கம், "");
if ($ pos> 0) {
$ content = substr ($ content, 0, $ pos);
}
திரும்ப $ உள்ளடக்கம். "…";
} வேறு {
$ உள்ளடக்கத்தை திரும்பவும்;
}
}
எங்கள் இறுதி எழுத்து ஒரு முழு நிறுத்தம், ஆச்சரியக்குறி அல்லது கேள்விக்குறி போன்ற நிறுத்தற்குறி பாத்திரமாக இருந்தால் என்ன செய்வது? துரதிர்ஷ்டவசமாக, இந்த குறியீடு முந்தைய சொல்லைக் குறிக்கும் முழு வார்த்தையையும் துடைக்கும்.
இன்னும் கொஞ்சம் வலுவான ஒன்றை எழுதுவது நல்லது என்று நான் நினைக்கிறேன்.
அத்தகைய நல்ல யோசனை!