Come ottenere i primi 5 caratteri dalla stringa


Risposte:


549

Per le stringhe a byte singolo (es. US-ASCII, famiglia ISO 8859, ecc.) Usare substre per le stringhe a byte multipli (es. UTF-8, UTF-16, ecc.) Usare mb_substr:

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

2
Grazie, questo è quello di cui avevo bisogno:if(substr($myURL, 0, 4) == "www.") $myURL = preg_replace('/www./', '', $myURL, 1);
shanehoban,

1
Hai davvero bisogno solo di str_replace ('www.', '', $ Url); Non è necessario verificare se esiste.
Doug Cassidy,

8
@DougCassidy: e se $url = "www.subwww.myweirddomainwww.com"? Senza il controllo iniziale per substr($url, 0, 4), il reso $urlè rovinato !!
Fr0zenFyr

46

Utilizzare substr():

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

substr("Häagen-Dazs", 0, 5) == "Häag"- Che cosa sto facendo di sbagliato?
user187291

12
@stereofrog: Probabilmente stai usando una codifica di caratteri multibyte come UTF-8. In tal caso utilizzare mb_substr.
Gumbo,

20

Un modo alternativo per ottenere un solo personaggio.

$str = 'abcdefghij';

echo $str{5};

7
Questa è la risposta giusta alla domanda sbagliata. Downvoted.
Mickmackusa,

Perché richiede più di un semplice copia e incolla?
Robert Pounder,

NOTA: per set di caratteri multi-byte come UTF-8, è necessario utilizzare invece mb_substr(i, 1)per ottenere iil carattere th. @RobertPounder - perché non si estende a ottenere più di un personaggio.
ToolmakerSteve

1
@ToolmakerSteve, se lo dici tu; $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)); (copialo incolla su phptester.net o su di noi)
Robert Pounder,

Si, lo so. Non l'ho votato personalmente; Ho appena osservato in che modo non risponde alla domanda. Quello che hai scritto - che sarebbe una risposta completa: che mostra un principiante come in php si estende da ottenere un carattere a più caratteri. Aggiunta utile alle domande e risposte - grazie.
ToolmakerSteve

15

Puoi usare la substrfunzione in questo modo:

echo substr($myStr, 0, 5);

Il secondo argomento substrè da quale posizione vuoi iniziare e il terzo argomento è per quanti caratteri vuoi restituire.


-4

Puoi ottenere il tuo risultato semplicemente usando substr () :

Sintassi substr (stringa, inizio, lunghezza)

Esempio

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

Produzione :

 Hello

16
Questo post MOLTO in ritardo non aggiunge alcun valore e semplicemente gonfia la pagina perché tutto ciò che dice è già stato detto (anni prima). Non pubblicare una risposta a meno che tu non abbia qualcosa di unico e prezioso da aggiungere. Ha votato in negativo questa risposta per scoraggiare post inutili e in ritardo.
Mickmackusa,

Hai pubblicato una risposta 7 anni dopo? Sul serio?
Varin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.