$str=':this is a applepie :) ';
PHP Nasıl Kullanılır , İlk Karakteri Kaldır:
$str=':this is a applepie :) ';
PHP Nasıl Kullanılır , İlk Karakteri Kaldır:
Yanıtlar:
:
Bir dizenin başlangıcından her birini kaldırmak için ltrim komutunu kullanabilirsiniz :
$str = '::f:o:';
$str = ltrim($str, ':');
var_dump($str); //=> 'f:o:'
:::::
. Bazen bu istenen davranış değildir.
ltrim('prefixprefix_postfix', 'prefix')
sonuçları'_postfix';
substr()
Fonksiyon muhtemelen size burada yardımcı olacaktır:
$str = substr($str, 1);
Dizeler 0'dan başlayarak dizine eklenir ve bu işlev ikinci parametresi cutstart'ı alır. Bu yüzden 1 yapın ve ilk karakter gitti.
false
iade edildi. Dolayısıyla, istediğiniz davranış bu değilse eşit olup olmadıklarını kontrol etmeniz gerekir.
Substr kullanın :
$str = substr($str, 1); // this is a applepie :)
3 cevap için yürütme süresi:
Davayı değiştirerek ilk harfi kaldırın
$str = "hello";
$str[0] = "";
// $str[0] = false;
// $str[0] = null;
// replaced by �, but ok for echo
1.000.000 test için yürütme süresi: 0.39602184295654
sn
Substr () ile ilk harfi kaldırın
$str = "hello";
$str = substr($str, 1);
1.000.000 test için yürütme süresi: 5.153294801712
sn
Ltrim () ile ilk harfi kaldırın
$str = "hello";
$str= ltrim ($str,'h');
1.000.000 test için yürütme süresi: 5.2393000125885
sn
Preg_replace () ile ilk harfi kaldırın
$str = "hello";
$str = preg_replace('/^./', '', $str);
1.000.000 test için yürütme süresi: 6.8543920516968
sn
$str[0] = '';
çözümü denedim ve işe yaramadı . ancak, örneğin karşılaştırmak için değişkeni kullanmayı planlıyorsanız yapar >
veya <
işe yaramaz. Hala `` + '' olarak sayılıyor$str = 'hello'; $str[0] = ''; var_dump($str); // string(5) 'ello'
var_dump($keyword)
uzunluğu gösteren bir anahtar kelime kullanarak bir API kayıtları getirilirken aynı sorunla karşılaştım .. sonra anahtar kelimeyi kırpmayı denedim ve sonra iyi çalıştı var_dump(trim($keyword))
.. Umarım bu birine yardımcı olur .. :)
İşte kod
$str = substr($str, 1);
echo $str;
Çıktı:
this is a applepie :)
PHP'de dizenin ilk karakterini kaldırmak için,
$string = "abcdef";
$new_string = substr($string, 1);
echo $new_string;
Generates: "bcdef"
$str = substr($str, 1);
PHP el kitabı örneğine bakın 3
echo substr('abcdef', 1); // bcdef
Not:
unset($str[0])
bir dizenin bir kısmını kaldıramayacağınız için çalışmaz : -
Fatal error: Cannot unset string offsets
Sonraki testlerden sonra, artık kullanılmasını önermiyorum. MySQL sorgusunda güncellenmiş dizeyi kullanırken ve sorunu düzeltmek için değiştirirken benim için bir soruna neden oldu substr
. Bu cevabı silmeyi düşündüm, ancak yorumlar bir şekilde daha hızlı olduğunu gösteriyor, bu yüzden birisi bunun için bir faydası olabilir. Güncellenen dizeyi kırpmanın dize uzunluğu sorunlarını çözdüğünü görebilirsiniz.
Bazen bir işleve ihtiyaç duymazsınız:
$str[0] = '';
Örneğin:
$str = 'AHello';
$str[0] = '';
echo $str; // 'Hello'
Bu yöntem, başka bir tane oluşturmak yerine mevcut dizeyi değiştirir.
sbstr () işlevini kullanabilirsiniz
$amount = 1; //where $amount the the amount of string you want to delete starting from index 0
$str = substr($str, $amount);
Bir dizideki her sözcüğün oluşumunu, bir dize + boşluk ve isteğe bağlı olarak normal kırpma () uyarınca ekstra tek karakterlerin başından ve sonundan düzeltir
<?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 benim için iyi çalışıyor.
$str = substr($str ,-(strlen($str)-1));
Belki de cevaplarla katkıda bulunun.