¿Reemplazar caracteres con palabra en PHP?
Frecuentes
Visto 176 veces
-1
Quiere reemplazar letras específicas en una cadena por una palabra completa.
Estoy usando:
function spec2hex($instr) {
for ($i=0; $i<strlen($instr); $i++) {
$char = substr($instr, $i,1);
if ($char == "a"){
$char = "hello";
}
$convString .= "&#".ord($char).";";
}
return $convString;
}
$myString = "adam";
$convertedString = spec2hex($myString);
echo $convertedString;
pero eso es volver:
hdhm
¿Cómo hago esto? Por cierto, esto es para reemplazar la puntuación con caracteres hexadecimales.
Gracias a todos.
5 Respuestas
0
Utilice la herramienta http://php.net/substr_replace
substr_replace($instr, $word, $i,1);
respondido 09 mar '12, 15:03
0
ord()
espera sólo un carácter ÚNICO. estas pasando hello
, entonces ord está haciendo lo suyo solo en el h
:
php > echo ord('hello');
104
php > echo ord('h');
104
Entonces, en efecto, su salida es en realidad
hdhm
respondido 09 mar '12, 15:03
No, pero puede 'explotar' una cadena en caracteres individuales y aplicar ord en un bucle. - Marc B
0
si quieres usar tu mismo código solo cambia $convString .= "&#".ord($char).";";
a $convString .= $char;
respondido 09 mar '12, 15:03
0
Si solo desea reemplazar la aparición de a
con hello
dentro de la cadena que pasa a la función, ¿por qué no usar PHP? str_replace()
?
function spec2hex($instr) {
return str_replace("a","hello",$instr);
}
respondido 09 mar '12, 15:03
0
Debo asumir que no desea tener caracteres hexadecimales en lugar de puntuación sino entidades html. Tenga en cuenta que str_replace(), cuando se llama con matrices, se ejecutará sobre la cadena varias veces, reemplazando así el ";" en "{
" ¡además!
Su código publicado no es útil para reemplazar la puntuación.
use strtr() con matrices, no tiene el inconveniente de str_replace().
$aReplacements = array(',' => ',', '.' => '.'); //todo: complete the array
$sText = strtr($sText, $aReplacements);
respondido 09 mar '12, 15:03
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php html string replace or haz tu propia pregunta.
Su pregunta es muy vaga: solo dé un ejemplo de entrada y salida deseada. - Poni
El problema con el que te encuentras es que
ord($char)
no siempre es un solo carácter, que es lo queord
espera. - Mr. Llama