So erhalten Sie die ersten 5 Zeichen aus der Zeichenfolge

Antworten:

549

Für Single-Byte - Zeichenketten (zB US-ASCII, ISO 8859 - Familie, etc.) verwenden substrund für Multi-Byte - Zeichenketten (zB UTF-8, UTF-16, etc.) Verwendung mb_substr:

// singlebyte strings
$result = substr($myStr, 0, 5);
// multibyte strings
$result = mb_substr($myStr, 0, 5);
Gumbo
quelle
2
Danke, dafür habe ich es gebraucht:if(substr($myURL, 0, 4) == "www.") $myURL = preg_replace('/www./', '', $myURL, 1);
Shanehoban
1
Sie brauchen wirklich nur str_replace ('www.', '', $ Url); Sie müssen nicht überprüfen, ob es existiert.
Doug Cassidy
8
@DougCassidy: Was wäre wenn $url = "www.subwww.myweirddomainwww.com"? Ohne die erste Überprüfung für substr($url, 0, 4)ist die Rückgabe $urlruiniert !!
Fr0zenFyr
46

Verwendung substr():

$result = substr($myStr, 0, 5);
BoltClock
quelle
substr("Häagen-Dazs", 0, 5) == "Häag"- Was mache ich falsch?
user187291
12
@stereofrog: Sie verwenden wahrscheinlich eine Mehrbyte-Zeichencodierung wie UTF-8. In diesem Fall verwenden mb_substr.
Gumbo
20

Eine alternative Möglichkeit, nur einen Charakter zu erhalten.

$str = 'abcdefghij';

echo $str{5};
Paul Hodel
quelle
7
Dies ist die richtige Antwort auf die falsche Frage. Abgestimmt.
Mickmackusa
Weil es mehr als das Einfügen von Kopien erfordert?
Robert Pounder
HINWEIS: Bei Mehrbyte-Zeichensätzen wie UTF-8 muss stattdessen verwendet werden mb_substr(i, 1), um das iZeichen abzurufen. @RobertPounder - weil es nicht mehr als einen Charakter umfasst.
ToolmakerSteve
1
@ToolmakerSteve, wenn Sie so sagen; $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)); (Kopieren, Einfügen in phptester.net oder wir)
Robert Pounder
Ja, ich weiß. Ich habe es nicht persönlich abgelehnt; Ich habe nur beobachtet, auf welche Weise es die Frage nicht beantwortet. Was Sie geschrieben haben - das wäre eine vollständige Antwort: Zeigen Sie einem Anfänger, wie man sich in PHP von einem Zeichen auf mehrere Zeichen erstreckt. Nützliche Ergänzung zu den Fragen und Antworten - danke.
ToolmakerSteve
15

Sie können die substrFunktion folgendermaßen verwenden:

echo substr($myStr, 0, 5);

Das zweite Argument substrist, von welcher Position aus Sie beginnen möchten, und das dritte Argument ist, wie viele Zeichen Sie zurückgeben möchten.

Sarfraz
quelle
-4

Sie können Ihr Ergebnis erhalten, indem Sie einfach substr () verwenden :

Syntax substr (String, Start, Länge)

Beispiel

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

Ausgabe :

 Hello
Prabhu Nandan Kumar
quelle
16
Dieser SEHR späte Beitrag bringt keinen Mehrwert und bläht die Seite nur auf, weil alles, was darin steht, bereits gesagt wurde (Jahre zuvor). Bitte posten Sie keine Antwort, es sei denn, Sie haben etwas Einzigartiges und Wertvolles hinzuzufügen. Diese Antwort wurde abgelehnt, um nutzlose, verspätete Posts zu unterbinden.
Mickmackusa
Sie haben 7 Jahre später eine Antwort gepostet? Ernsthaft?
Varin