Як отримати перші 5 символів з рядка


255

Як отримати перші 5 символів з рядка за допомогою php

$myStr = "HelloWordl";

результат повинен бути таким

$result = "Hello";


1
Можливий дублікат Get first n символів рядка
mega6382

Відповіді:


549

Для однобайтових рядків (наприклад, 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"- що я роблю неправильно?
користувач187291

12
@stereofrog: Ви, ймовірно, використовуєте багатобайтове кодування символів, як UTF-8. У такому випадку використовуйте mb_substr.
Gumbo

20

Альтернативний спосіб отримати лише одного персонажа.

$str = 'abcdefghij';

echo $str{5};

7
Це правильна відповідь на неправильне запитання. Захищений.
mickmackusa

Тому що для цього потрібно більше, ніж копіювання?
Роберт Пуендер

ПРИМІТКА. Для багатобайтових наборів символів, таких як UTF-8, замість цього слід використовувати mb_substr(i, 1)для отримання iго символу. @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 розширюється від отримання одного символу до кількох символів. Корисне доповнення до питань і запитань - дякую.
ToolmakerSteve

15

Ви можете використовувати substrфункцію так:

echo substr($myStr, 0, 5);

Другий аргумент substr- з якої позиції ви хочете почати і третій аргументи - скільки символів ви хочете повернути.


-4

Отримати результат можна просто за допомогою substr () :

Синтаксичний підряд (рядок, початок, довжина)

Приклад

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

Вихід:

 Hello

16
Цей ДУЖЕ пізній пост не додає ніякої цінності та просто роздуває сторінку, тому що все, про що йдеться, вже було сказано (роками раніше). Будь ласка, не публікуйте відповіді, якщо у вас немає чогось унікального та цінного додати. Спричинив цю відповідь, щоб перешкодити марним, пізнім повідомленням.
mickmackusa

Відповідь ви опублікували через 7 років? Серйозно?
Варін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.