Як витягнути перші 100 символів рядка в PHP


90

Я шукаю спосіб витягти перші 100 символів із рядкової змінної, щоб вставити іншу змінну для друку.

Чи існує функція, яка може це зробити легко?

Наприклад:

$string1 = "I am looking for a way to pull the first 100 characters from a string variable to put in another variable for printing.";
$string2 = 100charfunction($string1);
print $string2

Отримати:

I am looking for a way to pull the first 100 characters from a string vari

Кращим запитанням було б: Як витягнути / вибрати перші n символів із рядка?
rahim.nagori

Відповіді:


197
$small = substr($big, 0, 100);

Для маніпулювання рядками тут є сторінка з безліччю функцій, які можуть допомогти вам у вашій подальшій роботі.


2
існує проблема з поверненням арабського тексту, оскільки це слова з комбінованими літерами, якщо другий параметр (100) не є кінцем арабських слів на останньому, підраховуючи 100, він поверне нуль. для цього ми будемо використовувати (mb_substr ($ big, 0,100)
SAR

38

Ви можете використовувати substr, я думаю:

$string2 = substr($string1, 0, 100);

або mb_substr для багатобайтових рядків:

$string2 = mb_substr($string1, 0, 100);

Ви можете створити функцію, яка використовує цю функцію, і додає її, наприклад, '...'щоб вказати, що вона була скорочена. (Я думаю, що вже є сотня подібних відповідей, коли це розміщено ...)


22

Пізня, але корисна відповідь, PHP спеціально для цього має функцію.

mb_strimwidth

$string = mb_strimwidth($string, 0, 100);
$string = mb_strimwidth($string, 0, 97, '...'); //optional characters for end

2
Добре 1 ... Дійсно корисно. +1
RJParikh,

21
$ x = '1234567';

echo substr ($ x, 0, 3); // виводи 123

echo substr ($ x, 1, 1); // виводи 2

echo substr ($ x, -2); // виводи 67

echo substr ($ x, 1); // виводи 234567

echo substr ($ x, -2, 1); // виводи 6

1
Дякую. Це добре підсумовує змінні функції substr ()!
JoshFinnie

У мене 128.82в рядку, і я хочу розділити 100і28.82
Моез,

18

спробуйте цю функцію

function summary($str, $limit=100, $strip = false) {
    $str = ($strip == true)?strip_tags($str):$str;
    if (strlen ($str) > $limit) {
        $str = substr ($str, 0, $limit - 3);
        return (substr ($str, 0, strrpos ($str, ' ')).'...');
    }
    return trim($str);
}

2

Без внутрішніх функцій php:

function charFunction($myStr, $limit=100) {    
    $result = "";
    for ($i=0; $i<$limit; $i++) {
        $result .= $myStr[$i];
    }
    return $result;    
}

$string1 = "I am looking for a way to pull the first 100 characters from a string variable to put in another variable for printing.";

echo charFunction($string1);
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.