$str=':this is a applepie :) ';
Jak korzystać z PHP , usuń pierwszy znak:
$str=':this is a applepie :) ';
Jak korzystać z PHP , usuń pierwszy znak:
Odpowiedzi:
Aby usunąć każdy :
z początku łańcucha, możesz użyć ltrim :
$str = '::f:o:';
$str = ltrim($str, ':');
var_dump($str); //=> 'f:o:'
:::::
. Czasami nie jest to pożądane zachowanie.
ltrim('prefixprefix_postfix', 'prefix')
wyniki w'_postfix';
substr()
Funkcja będzie prawdopodobnie pomóc tutaj:
$str = substr($str, 1);
Łańcuchy są indeksowane od 0, a ten drugi parametr funkcji uruchamia cutstart. Więc zrób 1, a pierwszy znak zniknie.
false
został zwrócony. Musisz więc sprawdzić, czy są równe, jeśli nie jest to pożądane zachowanie.
Użyj substr :
$str = substr($str, 1); // this is a applepie :)
Czas wykonania dla 3 odpowiedzi:
Usuń pierwszą literę, zastępując obudowę
$str = "hello";
$str[0] = "";
// $str[0] = false;
// $str[0] = null;
// replaced by �, but ok for echo
Czas wykonania dla 1.000.000 testów: 0.39602184295654
sek
Usuń pierwszą literę z substr ()
$str = "hello";
$str = substr($str, 1);
Czas wykonania dla 1.000.000 testów: 5.153294801712
sek
Usuń pierwszą literę za pomocą ltrim ()
$str = "hello";
$str= ltrim ($str,'h');
Czas wykonania dla 1.000.000 testów: 5.2393000125885
sek
Usuń pierwszą literę za pomocą preg_replace ()
$str = "hello";
$str = preg_replace('/^./', '', $str);
Czas wykonania dla 1.000.000 testów: 6.8543920516968
sek
$str[0] = '';
rozwiązanie i nie zadziałało. robi to jednak dobrze, jeśli planujesz na przykład użyć zmiennej do porównania, bo >
inaczej <
nie zadziała. Nadal liczy się jako `` jak + '', na przykład $str = 'hello'; $str[0] = ''; var_dump($str); // string(5) 'ello'
var_dump($keyword)
który wyświetlał poprzednią długość znaku. Potem spróbowałem przyciąć słowo kluczowe, a potem zadziałało var_dump(trim($keyword))
. Mam nadzieję, że to komuś pomoże :)
Oto kod
$str = substr($str, 1);
echo $str;
Wynik:
this is a applepie :)
Aby usunąć pierwszy znak ciągu znaków w PHP,
$string = "abcdef";
$new_string = substr($string, 1);
echo $new_string;
Generates: "bcdef"
$str = substr($str, 1);
Zobacz podręcznik PHP 3 przykład
echo substr('abcdef', 1); // bcdef
Uwaga:
unset($str[0])
nie będzie działać, ponieważ nie można rozbroić części ciągu: -
Fatal error: Cannot unset string offsets
Po dalszych testach nie polecam już tego używać. To spowodowało problem podczas używania zaktualizowanego ciągu w zapytaniu MySQL i zmiany w celu substr
rozwiązania problemu. Myślałem o usunięciu tej odpowiedzi, ale komentarze sugerują, że jest ona jakoś szybsza, więc ktoś może ją wykorzystać. Może się okazać, że przycięcie zaktualizowanego łańcucha rozwiąże problemy z długością łańcucha.
Czasami nie potrzebujesz funkcji:
$str[0] = '';
Na przykład:
$str = 'AHello';
$str[0] = '';
echo $str; // 'Hello'
Ta metoda modyfikuje istniejący ciąg zamiast tworzyć inny.
możesz użyć funkcji sbstr ()
$amount = 1; //where $amount the the amount of string you want to delete starting from index 0
$str = substr($str, $amount);
Przycina wystąpienia każdego słowa w tablicy od początku i końca łańcucha + białych znaków i opcjonalnie dodatkowych pojedynczych znaków, jak w przypadku zwykłego przycinania ()
<?php
function trim_words($what, $words, $char_list = '') {
if(!is_array($words)) return false;
$char_list .= " \t\n\r\0\x0B"; // default trim chars
$pattern = "(".implode("|", array_map('preg_quote', $words)).")\b";
$str = trim(preg_replace('~'.$pattern.'$~i', '', preg_replace('~^'.$pattern.'~i', '', trim($what, $char_list))), $char_list);
return $str;
}
// for example:
$trim_list = array('AND', 'OR');
$what = ' OR x = 1 AND b = 2 AND ';
print_r(trim_words($what, $trim_list)); // => "x = 1 AND b = 2"
$what = ' ORDER BY x DESC, b ASC, ';
print_r(trim_words($what, $trim_list, ',')); // => "ORDER BY x DESC, b ASC"
?>
Kod działa dobrze dla mnie.
$str = substr($str ,-(strlen($str)-1));
Może również udzielić odpowiedzi.