Как получить первые 5 символов из строки


255

Как получить первые 5 символов из строки, используя php

$myStr = "HelloWordl";

результат должен быть таким

$result = "Hello";


Ответы:


550

Для однобайтовых строк (например, US-ASCII, семейства ISO 8859 и т. Д.) Используйте substrи для многобайтовых строк (например, UTF-8, UTF-16 и т. Д.) Используйте mb_substr:

// singlebyte strings
$result = substr($myStr, 0, 5);
// multibyte strings
$result = mb_substr($myStr, 0, 5);

2
Спасибо, это то, что мне было нужно:if(substr($myURL, 0, 4) == "www.") $myURL = preg_replace('/www./', '', $myURL, 1);
shanehoban

1
Вам действительно нужен только str_replace ('www.', '', $ Url); Не нужно проверять, существует ли он.
Даг Кэссиди

8
@DougCassidy: что если $url = "www.subwww.myweirddomainwww.com"? Без первоначальной проверки substr($url, 0, 4), возвращается $urlразрушен!
Fr0zenFyr

46

Используйте substr():

$result = substr($myStr, 0, 5);

substr("Häagen-Dazs", 0, 5) == "Häag"- Что я делаю не так?
user187291

12
@stereofrog: Вы, вероятно, используете многобайтовую кодировку символов, например UTF-8. В таком случае используйте mb_substr.
Гамбо

20

Альтернативный способ получить только одного персонажа.

$str = 'abcdefghij';

echo $str{5};

7
Это правильный ответ на неправильный вопрос. Downvoted.
mickmackusa

Потому что это требует больше, чем просто копирование?
Роберт Паундер

ПРИМЕЧАНИЕ. Для многобайтовых наборов символов, таких как UTF-8, вместо этого необходимо использовать mb_substr(i, 1)для получения ith-й символ. @RobertPounder - потому что он не распространяется на получение более одного символа.
ToolmakerSteve

1
@ ToolmakerSteve, если вы так говорите; $string = "Häagen-Dazs"; $stringFirstChars = function($amount, $string) { $i=0;$done=false;$return = '';while($done == false) {$return.=$string{$i};if($amount===$i)$done=true;$i++;}return $return;}; var_dump($stringFirstChars(5, $string)); (скопируйте и вставьте это в phptester.net или мы)
Роберт Паундер,

Да, я знаю. Я лично не отрицал это; Я просто заметил, как это не отвечает на вопрос. То, что вы написали - это будет полный ответ: показать новичку, как в php можно перейти от получения одного символа к нескольким символам. Полезное дополнение к Q & A - спасибо.
ToolmakerSteve

15

Вы можете использовать substrфункцию следующим образом:

echo substr($myStr, 0, 5);

Второй аргумент substr- с какой позиции вы хотите начать, а третий аргумент - сколько символов вы хотите вернуть.


-4

Вы можете получить свой результат, просто используя substr () :

Синтаксис substr (строка, начало, длина)

пример

<?php
$myStr = "HelloWordl";
echo substr($myStr,0,5);
?>

Вывод :

 Hello

16
Этот ОЧЕНЬ поздний пост не добавляет никакой ценности и просто раздувает страницу, потому что все, что он говорит, уже было сказано (годы назад). Пожалуйста, не размещайте ответ, если у вас нет чего-то уникального и ценного для добавления. Понизил этот ответ, чтобы препятствовать бесполезным, поздним сообщениям.
mickmackusa

Вы отправили ответ 7 лет спустя? Шутки в сторону?
Варин
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.