Как вытянуть первые 100 символов строки в PHP

91

Я ищу способ вытащить первые 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

Ответы:

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

Для манипуляции строками вот страница с большим количеством функций, которые могут помочь вам в вашей будущей работе.

Патрик Дежарден
источник
2
существует проблема с возвратом арабского текста, поскольку это слова с комбинированными буквами, если второй параметр (100) не находится в конце арабских слов в последнем, при подсчете 100 он вернет null. для этого мы будем использовать (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
Coz
источник
2
Хорошо 1 ... Действительно полезно. +1
RJParikh
21
$ x = '1234567';

эхо substr ($ x, 0, 3); // выводит 123

эхо 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
Moeez
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);
joan16v
источник