ನೀವು ಪಿಎಚ್ಪಿ ಯೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದರೆ ಮತ್ತು ನಿಮ್ಮ ಮೂಲ ಪಠ್ಯದಿಂದ ಆಯ್ದ ಭಾಗವನ್ನು ಮಾತ್ರ ತೋರಿಸಲು ಮತ್ತು ಅದನ್ನು ಹಲವಾರು ಅಕ್ಷರಗಳಲ್ಲಿ ಕತ್ತರಿಸಲು ನೀವು ಬಯಸಿದರೆ, ನಿಮ್ಮ ಉದ್ಧೃತಭಾಗವು ಮಧ್ಯ-ಸ್ಟ್ರಿಂಗ್ ಮಾಡಿದರೆ ಕೊಳಕು ಕಾಣುತ್ತದೆ. ಎಎಸ್ಪಿ ಮತ್ತು ಎಎಸ್ಪಿ ನೆಟ್ ನಲ್ಲಿ ಇದನ್ನು ಮಾಡಲು ನಾನು ಒಂದು ಕಾರ್ಯವನ್ನು ಬರೆಯಬೇಕಾಗಿತ್ತು, ಅದು ಮೂಲತಃ ಕೊನೆಯ ಅಕ್ಷರದಿಂದ ಹಿಂದೆ ಸೈಕ್ಲಿಂಗ್ ಮಾಡಿ ಕೊನೆಯ ಜಾಗವನ್ನು ಹುಡುಕಲು ಮತ್ತು ಅದನ್ನು ಅಲ್ಲಿ ಕತ್ತರಿಸಿ. ಒಂದು ರೀತಿಯ ಅಸಹ್ಯ ಮತ್ತು ಸ್ವಲ್ಪ ಅತಿಯಾದ ಕಿಲ್. ನೀವು ಇದನ್ನು ನಿಜವಾಗಿಯೂ ನನ್ನ ಮನೆಯ ಮೇಲೆ ನೋಡಬಹುದು ಪುಟ ಅಲ್ಲಿ ನಾನು ಮೊದಲ 500 ಅಕ್ಷರಗಳನ್ನು ಮಾತ್ರ ಒದಗಿಸುತ್ತೇನೆ.
ಇಂದು ಪಿಎಚ್ಪಿ ಯೊಂದಿಗೆ ಅದೇ ಕಾರ್ಯವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ನಾನು ಸಂಪೂರ್ಣವಾಗಿ ಸಿದ್ಧನಾಗಿದ್ದೆ ಆದರೆ ಪಿಎಚ್ಪಿಗೆ ಈಗಾಗಲೇ ಒಂದು ಕಾರ್ಯವಿದೆ ಎಂದು (ಎಂದಿನಂತೆ) ಕಂಡುಕೊಂಡಿದ್ದೇನೆ, strpos.
ಹಳೆಯ ಕೋಡ್ ಮೊದಲ ಅಕ್ಷರದಿಂದ ನಿಮಗೆ ಬೇಕಾದ ಗರಿಷ್ಠ ಸಂಖ್ಯೆಯ ಅಕ್ಷರಗಳಿಗೆ ($ ಮ್ಯಾಕ್ಸ್ಚಾರ್ಸ್) ಸಬ್ಸ್ಟ್ರಿಂಗ್ ($ ವಿಷಯ) ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ:
$ content = substr ($ content, 0, $ maxchars); ಪ್ರತಿಧ್ವನಿ $ ವಿಷಯ;
ಹೊಸ ಕೋಡ್:
$ content = substr ($ content, 0, $ maxchars); $ pos = strrpos ($ ವಿಷಯ, ""); if ($ pos> 0) {$ content = substr ($ content, 0, $ pos); } ಪ್ರತಿಧ್ವನಿ $ ವಿಷಯ;
ಆದ್ದರಿಂದ ಹೊಸ ಕೋಡ್ ಮೊದಲು ನೀವು ಹುಡುಕುತ್ತಿರುವ ಅಕ್ಷರ ಮಿತಿಯಲ್ಲಿ ವಿಷಯವನ್ನು ಕಡಿತಗೊಳಿಸುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಮುಂದಿನ ಹಂತವು ವಿಷಯದಲ್ಲಿ ಕೊನೆಯ ಸ್ಥಳವನ್ನು (”“) ಹುಡುಕುವುದು. $ ಪೋಸ್ ಆ ಸ್ಥಾನದಲ್ಲಿದೆ. ಈಗ, $ pos> 0 ಎಂದು ಕೇಳುವ ಮೂಲಕ ವಿಷಯದಲ್ಲಿ ನಿಜವಾಗಿ ಸ್ಥಳವಿದೆ ಎಂದು ನಾನು ಖಚಿತಪಡಿಸುತ್ತೇನೆ. ಇಲ್ಲದಿದ್ದರೆ, ಅದು ನಾನು ವಿನಂತಿಸಿದ ಅಕ್ಷರಗಳ ಸಂಖ್ಯೆಯಲ್ಲಿ ವಿಷಯವನ್ನು ಕಡಿತಗೊಳಿಸುತ್ತದೆ. ಯಾವುದೇ ಸ್ಥಳವಿದ್ದರೆ, ಅದು ಜಾಗದಲ್ಲಿ ನನ್ನ ವಿಷಯವನ್ನು ಮನೋಹರವಾಗಿ ಕತ್ತರಿಸುತ್ತದೆ.
ಗರಿಷ್ಠ ಸಂಖ್ಯೆಯ ಅಕ್ಷರಗಳ ಸಂಯೋಜನೆಯನ್ನು ಬಳಸುವ ಮತ್ತು ಅದನ್ನು ಪದದಲ್ಲಿ ಕತ್ತರಿಸುವ ಉತ್ತಮ ಮಾರ್ಗವಾಗಿದೆ. ನಿನಗೆ ಇಷ್ಟವಾಗಬಹುದೆನ್ನಿಸುತ್ತದೆ!
ಇದನ್ನು ಮಾಡುವ ಎಎಸ್ಪಿ.ನೆಟ್ ಕಾರ್ಯವಿದೆಯೇ ಎಂದು ನಾನು ಕಂಡುಕೊಳ್ಳುತ್ತೇನೆ ಎಂದು ನನಗೆ ಖಾತ್ರಿಯಿದೆ ... ನನಗೆ ಒಂದನ್ನು ಕಂಡುಹಿಡಿಯಲಾಗಲಿಲ್ಲ.
ಡೌಗ್, C# ನಲ್ಲಿ ನೀವು String.LastIndexOf ವಿಧಾನವನ್ನು PHP ಯಲ್ಲಿ strrpos ಮಾಡುವುದನ್ನು ಮಾಡಲು ಬಳಸಬಹುದು.
ಅದು ಸಂಭವಿಸುತ್ತದೆ ಎಂದು ನನಗೆ ತಿಳಿದಿತ್ತು! 🙂
ಧನ್ಯವಾದಗಳು, ಅಭಿಜಿತ್!
ಅತ್ಯುತ್ತಮ! ನಾನು ಹುಡುಕುತ್ತಿರುವುದನ್ನು ಮಾತ್ರ. ಧನ್ಯವಾದಗಳು.
$content ಆರಂಭದಲ್ಲಿ $maxchars ಗಿಂತ ಚಿಕ್ಕದಾಗಿದ್ದರೆ, ಬರೆಯಲಾದ ಕೋಡ್ ಇನ್ನೂ ಬಲದಿಂದ ಎಡಕ್ಕೆ ಒಂದು ಸ್ಪೇಸ್ಗಾಗಿ ಕಾಣುತ್ತದೆ ಮತ್ತು ಕೊನೆಯ ಪದವನ್ನು ಕತ್ತರಿಸುತ್ತದೆ. ನೀವು $content ನ ಕೊನೆಯಲ್ಲಿ ಜಾಗವನ್ನು ಸಂಯೋಜಿಸಬಹುದು ಅಥವಾ if (strlen()...) ಅನ್ನು ಮಾಡಬಹುದು
ಇದು ಕಾರ್ಯದಂತೆ ಕೆಲಸ ಮಾಡುವಂತೆ ತೋರುತ್ತಿದೆ (ಹಿಂದಿನ ಕಾಮೆಂಟ್ ಅನ್ನು ಉದ್ದೇಶಿಸಿ):
ಫಂಕ್ಷನ್ ಶೋಉದ್ಧರಣ($ವಿಷಯ, $maxchars) {
ವೇಳೆ (strlen($content) > $maxchars) {
$content= substr($content, 0, $maxchars);
$pos = strrpos($content, "");
ಒಂದು ವೇಳೆ ($pos>0) {
$content = substr($content, 0, $pos);
}
$ವಿಷಯ ಹಿಂತಿರುಗಿ. "...";
} ಬೇರೆ {
$ ವಿಷಯವನ್ನು ಹಿಂದಿರುಗಿಸಿ;
}
}
ನಮ್ಮ ಅಂತಿಮ ಅಕ್ಷರವು ಪೂರ್ಣವಿರಾಮ, ಆಶ್ಚರ್ಯಸೂಚಕ ಚಿಹ್ನೆ ಅಥವಾ ಪ್ರಶ್ನಾರ್ಥಕ ಚಿಹ್ನೆಯಂತಹ ವಿರಾಮ ಚಿಹ್ನೆಯಾಗಿದ್ದರೆ ಏನು? ದುರದೃಷ್ಟವಶಾತ್, ಈ ಕೋಡ್ ವಿರಾಮ ಚಿಹ್ನೆಯ ಹಿಂದಿನ ಸಂಪೂರ್ಣ ಪದವನ್ನು ಅಳಿಸುತ್ತದೆ.
ನೀವು ಸ್ವಲ್ಪ ಹೆಚ್ಚು ದೃಢವಾದದ್ದನ್ನು ಬರೆಯುವುದು ಉತ್ತಮ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ.
ಎಂಥ ಒಳ್ಳೆಯ ಉಪಾಯ!