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);

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);

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};

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.


-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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.