To jest prawidłowa odpowiedź na złe pytanie. Doceniony.
mickmackusa,
Bo to wymaga czegoś więcej niż wklejania kopii?
Robert Pounder
UWAGA: W przypadku zestawów znaków wielo-bajtowych, takich jak UTF-8, należy zamiast tego użyć mb_substr(i, 1), aby uzyskać ith charakter. @RobertPounder - ponieważ nie obejmuje uzyskania więcej niż jednej postaci.
ToolmakerSteve
1
@ToolmakerSteve, jeśli tak mówisz; $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)); (skopiuj to wklej do phptester.net lub my)
Robert Pounder
Tak, wiem. Nie głosowałem osobiście; Właśnie zauważyłem, w jaki sposób nie odpowiada na pytanie. To, co napisałeś - to byłaby kompletna odpowiedź: pokazanie początkującemu, w jaki sposób php rozciąga się od zdobycia jednej postaci do wielu postaci. Przydatny dodatek do pytań i odpowiedzi - dziękuję.
Ten BARDZO późny post nie wnosi żadnej wartości i jedynie wzdycha stronę, ponieważ wszystko, co mówi, zostało już powiedziane (lata wcześniej). Nie publikuj odpowiedzi, chyba że masz coś wyjątkowego i wartościowego do dodania. Poparłem tę odpowiedź, aby zniechęcić do bezużytecznych, późnych postów.
Odpowiedzi:
W przypadku ciągów jednobajtowych (np. US-ASCII, rodzina ISO 8859 itp.) Należy używać,
substr
aw przypadku ciągów wielobajtowych (np. UTF-8, UTF-16 itp.)mb_substr
:źródło
if(substr($myURL, 0, 4) == "www.") $myURL = preg_replace('/www./', '', $myURL, 1);
$url = "www.subwww.myweirddomainwww.com"
? Bez wstępnego sprawdzeniasubstr($url, 0, 4)
, zwrócone$url
jest zrujnowane !!Użyj
substr()
:źródło
substr("Häagen-Dazs", 0, 5) == "Häag"
- Co ja robię źle?mb_substr
.Alternatywny sposób na uzyskanie tylko jednej postaci.
źródło
mb_substr(i, 1)
, aby uzyskaći
th charakter. @RobertPounder - ponieważ nie obejmuje uzyskania więcej niż jednej postaci.$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));
(skopiuj to wklej do phptester.net lub my)Możesz użyć takiej
substr
funkcji:Drugi argument
substr
dotyczy tego, od której pozycji chcesz rozpocząć, a trzeci argument dotyczy liczby znaków, które chcesz zwrócić.źródło
Możesz uzyskać wynik, po prostu używając substr () :
Składnia substr (ciąg, początek, długość)
Przykład
Wynik :
źródło