Domyślam się, że OP chce usunąć wszystkie „.” na końcu, inaczej po co usuwać tylko jedną? ;)
Tor Valamo
2
tak, ja też to zgaduję. po prostu podążając za pytaniem tak dokładnie, jak to możliwe.
ghostdog74
2
To jest o wiele lepsze, zbyt wiele osób nie zdaje sobie sprawy, że użycie character_maskw trimzasadzie usuwa jakiekolwiek wystąpienie znaku z całego ciągu
Brock Hensley
8
Aby usunąć ostatni znak tylko wtedy, gdy jest to kropka i nie uciekając się do preg_replacetego, możemy po prostu potraktować ciąg jako tablicę znaków i usunąć ostatni znak, jeśli jest to kropka.
if ($str[strlen($str)-1]==='.')
$str=substr($str, 0, -1);
To jest poprawna odpowiedź, ponieważ pozostałe usuwałyby wszystkie znaki końcowe, a nie tylko ostatni. Ale powinieneś użyć ===zamiast, ==aby również sprawdzić równość typów
padawanTony
3
Wiem, że pytanie zostało rozwiązane. Ale może ta odpowiedź będzie dla kogoś pomocna.
rtrim() - Usuń białe znaki (lub inne znaki) z końca łańcucha
ltrim() - Usuń białe znaki (lub inne znaki) z początku ciągu
trim() - Usuń białe znaki (lub inne znaki) z początku i końca ciągu
Aby usunąć znaki specjalne z końca ciągu lub Czy ciąg zawiera dynamiczne znaki specjalne na końcu, możemy to zrobić za pomocą wyrażenia regularnego.
preg_replace - Wykonaj wyszukiwanie i zamień według wyrażeń regularnych
$regex = "/\.$/"; //to replace the single dot at the end
$regex = "/\.+$/"; //to replace multiple dots at the end
$regex = "/[.*?!@#$&-_ ]+$/"; //to replace all special characters (.*?!@#$&-_) from the end
$result = preg_replace($regex, "", $string);
Oto przykład, aby zrozumieć, kiedy $regex = "/[.*?!@#$&-_ ]+$/";jest stosowany do ciągu
rtrim
dużo łatwiejszym…!…
za to. Jeśli usuniesz ostatnią kropkę, a pozostała nadal będzie kropką, tytuł pytania nie miałby większego sensu, prawda?użycie rtrim zastępuje wszystkie „.” na końcu, a nie tylko ostatnia postać
$string = "something here.."; echo preg_replace("/\.$/","",$string);
źródło
character_mask
wtrim
zasadzie usuwa jakiekolwiek wystąpienie znaku z całego ciąguAby usunąć ostatni znak tylko wtedy, gdy jest to kropka i nie uciekając się do
preg_replace
tego, możemy po prostu potraktować ciąg jako tablicę znaków i usunąć ostatni znak, jeśli jest to kropka.if ($str[strlen($str)-1]==='.') $str=substr($str, 0, -1);
źródło
===
zamiast,==
aby również sprawdzić równość typówWiem, że pytanie zostało rozwiązane. Ale może ta odpowiedź będzie dla kogoś pomocna.
rtrim()
- Usuń białe znaki (lub inne znaki) z końca łańcuchaltrim()
- Usuń białe znaki (lub inne znaki) z początku ciągutrim()
- Usuń białe znaki (lub inne znaki) z początku i końca ciąguAby usunąć znaki specjalne z końca ciągu lub Czy ciąg zawiera dynamiczne znaki specjalne na końcu, możemy to zrobić za pomocą wyrażenia regularnego.
preg_replace
- Wykonaj wyszukiwanie i zamień według wyrażeń regularnych$regex = "/\.$/"; //to replace the single dot at the end $regex = "/\.+$/"; //to replace multiple dots at the end $regex = "/[.*?!@#$&-_ ]+$/"; //to replace all special characters (.*?!@#$&-_) from the end $result = preg_replace($regex, "", $string);
Oto przykład, aby zrozumieć, kiedy
$regex = "/[.*?!@#$&-_ ]+$/";
jest stosowany do ciągu$string = "Some text........"; // $resul -> "Some text"; $string = "Some text.????"; // $resul -> "Some text"; $string = "Some text!!!"; // $resul -> "Some text"; $string = "Some text..!???"; // $resul -> "Some text";
Mam nadzieję, że jest to pomocne dla Ciebie.
Dzięki :-)
źródło
Wiem, że pytanie jest co stare, ale może moja odpowiedź jest dla kogoś pomocna.
$string = "something here..........";
ltrim usunie wiodące kropki. na przykład:-
ltrim($string, ".")
rtrim
rtrim($string, ".")
usunie końcowe kropki.przycinanie
trim($string, ".")
usuwałoby końcowe i początkowe kropki.możesz to również zrobić za pomocą wyrażenia regularnego
preg_replace by remove może być użyty do usunięcia kropki / kropek na końcu
$regex = "/\.$/"; //to replace single dot at the end $regex = "/\.+$/"; //to replace multiple dots at the end preg_replace($regex, "", $string);
Mam nadzieję, że jest to pomocne dla Ciebie.
źródło
Ostatni znak można usunąć na różne sposoby, oto kilka
rtrim()
$output = rtrim($string, '.');
Regular Expression
preg_replace("/\.$/", "", $string);
substr()
/mb_substr()
echo mb_substr($string, 0, -1); echo substr(trim($string), 0, -1);
substr()
ztrim()
echo substr(trim($string), 0, -1);
źródło
Użyj kombinacji strrpos i substr, aby uzyskać pozycję ostatniego znaku kropki i usunąć go, pozostawiając wszystkie inne znaki nienaruszone:
$string = "something here."; $pos = strrpos($string,'.'); if($pos !== false){ $output = substr($string,0,$pos); } else { $output = $string; } var_dump($output); // $output = 'something here';
źródło
Możesz użyć funkcji rtrim w php, która pozwala przyciąć dane, które istnieją na ostatniej pozycji.
Na przykład :
$trim_variable= rtrim($any_string, '.');
Najprostszy i najszybszy sposób !!
źródło
Przykład:
$columns = array('col1'=> 'value1', 'col2' => '2', 'col3' => '3', 'col4' => 'value4'); echo "Total no of elements: ".count($columns); echo "<br>"; echo "----------------------------------------------<br />"; $keys = ""; $values = ""; foreach($columns as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; $keys = $keys."'".$x."',"; $values = $values."'".$x_value."',"; echo "<br>"; } echo "----------------------Before------------------------<br />"; echo $keys; echo "<br />"; echo $values; echo "<br />"; $keys = rtrim($keys, ","); $values = rtrim($values, ","); echo "<br />"; echo "-----------------------After-----------------------<br />"; echo $keys; echo "<br />"; echo $values; ?>
Wynik:
Total no of elements: 4 ---------------------------------------------- Key=col1, Value=value1 Key=col2, Value=2 Key=col3, Value=3 Key=col4, Value=value4 ----------------------Before------------------------ 'col1','col2','col3','col4', 'value1','2','3','value4', -----------------------After----------------------- 'col1','col2','col3','col4' 'value1','2','3','value4'
źródło