@OndrejIvanic: Você precisa …disso. Se você remover o último ponto e o restante ainda for um ponto, o título da pergunta não faria muito sentido, faria?
Alix Axel de
29
usar rtrim substitui todos os "." no final, não apenas o último personagem
Acho que o OP deseja remover todos os '.' no final, caso contrário, por que remover apenas um? ;)
Tor Valamo
2
sim, também estou supondo. apenas acompanhando a questão o mais próximo possível.
ghostdog74
2
Isso é muito melhor, muitas pessoas não percebem que o uso character_maskde trimbasicamente remove qualquer instância do caractere em toda a string
Brock Hensley
8
Para remover o último caractere apenas se for um ponto e não recorrer a preg_replace, podemos apenas tratar a string como um array de char e remover o caractere final se for um ponto.
if ($str[strlen($str)-1]==='.')
$str=substr($str, 0, -1);
Esta é a resposta correta, pois as outras iriam excluir todos os caracteres finais, não apenas o último. Mas você deve usar em ===vez de ==também verificar a igualdade de tipo
padawanTony
3
Eu sei que a questão está resolvida. Mas talvez essa resposta seja útil para alguém.
rtrim() - Retire os espaços em branco (ou outros caracteres) do final de uma string
ltrim() - Retire os espaços em branco (ou outros caracteres) do início de uma string
trim() - Retire os espaços em branco (ou outros caracteres) do início e do final de uma string
Para remover caracteres especiais do final da string ou Se a string contém caracteres especiais dinâmicos no final, podemos fazer por regex.
preg_replace - Faça uma pesquisa e substituição de expressão regular
$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);
Aqui está algum exemplo para entender quando $regex = "/[.*?!@#$&-_ ]+$/";é aplicado a string
Use uma combinação de strrpos e substr para obter a posição do último caractere de ponto final e remova-o, deixando todos os outros caracteres intactos:
rtrim
muito mais fácil ...!…
disso. Se você remover o último ponto e o restante ainda for um ponto, o título da pergunta não faria muito sentido, faria?usar rtrim substitui todos os "." no final, não apenas o último personagem
$string = "something here.."; echo preg_replace("/\.$/","",$string);
fonte
character_mask
detrim
basicamente remove qualquer instância do caractere em toda a stringPara remover o último caractere apenas se for um ponto e não recorrer a
preg_replace
, podemos apenas tratar a string como um array de char e remover o caractere final se for um ponto.if ($str[strlen($str)-1]==='.') $str=substr($str, 0, -1);
fonte
===
vez de==
também verificar a igualdade de tipoEu sei que a questão está resolvida. Mas talvez essa resposta seja útil para alguém.
rtrim()
- Retire os espaços em branco (ou outros caracteres) do final de uma stringltrim()
- Retire os espaços em branco (ou outros caracteres) do início de uma stringtrim()
- Retire os espaços em branco (ou outros caracteres) do início e do final de uma stringPara remover caracteres especiais do final da string ou Se a string contém caracteres especiais dinâmicos no final, podemos fazer por regex.
preg_replace
- Faça uma pesquisa e substituição de expressão regular$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);
Aqui está algum exemplo para entender quando
$regex = "/[.*?!@#$&-_ ]+$/";
é aplicado a string$string = "Some text........"; // $resul -> "Some text"; $string = "Some text.????"; // $resul -> "Some text"; $string = "Some text!!!"; // $resul -> "Some text"; $string = "Some text..!???"; // $resul -> "Some text";
Espero que seja útil para você.
Obrigado :-)
fonte
Eu sei que a pergunta é antiga, mas pode ser que minha resposta seja útil para alguém.
$string = "something here..........";
ltrim removeria os pontos principais. por exemplo:-
ltrim($string, ".")
rtrim
rtrim($string, ".")
removeria os pontos finais.a guarnição
trim($string, ".")
removeria pontos à direita e à direita.você também pode fazer isso por regex
preg_replace iria remover pode ser usado para remover pontos / pontos no final
$regex = "/\.$/"; //to replace single dot at the end $regex = "/\.+$/"; //to replace multiple dots at the end preg_replace($regex, "", $string);
Espero que seja útil para você.
fonte
O último caractere pode ser removido de diferentes maneiras. Aqui estão alguns
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()
comtrim()
echo substr(trim($string), 0, -1);
fonte
Use uma combinação de strrpos e substr para obter a posição do último caractere de ponto final e remova-o, deixando todos os outros caracteres intactos:
$string = "something here."; $pos = strrpos($string,'.'); if($pos !== false){ $output = substr($string,0,$pos); } else { $output = $string; } var_dump($output); // $output = 'something here';
fonte
Você pode usar a função rtrim do php, que permite cortar os dados existentes na última posição.
Por exemplo :
$trim_variable= rtrim($any_string, '.');
Forma mais simples e rápida !!
fonte
Exemplo:
$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; ?>
Resultado:
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'
fonte