Tengo una cadena como "Car version XXXX".

Quiero eliminar todo después de la "versión" pero mantener esta primera parte. La final debe ser "Versión para automóvil"

Actualmente, logré hacer esto:

$version = "Car version 15282";

$version = substr($version, 0, strpos($version, "version"));

echo $version;

Pero también elimina la cadena "versión" y necesito mantenerla. En la web solo veo un ejemplo para eliminar después del personaje, incluido este último.

¿Cómo lograr esto en PHP?

php
0
Efbi 24 jun. 2020 a las 17:22

2 respuestas

La mejor respuesta

Debe agregar la longitud de la cadena que está buscando porque strlen() le da el índice de dónde comienza la cadena version.

$version = "Car version 15282";

$version = substr($version, 0, strpos($version, "version")+strlen("version"));

echo $version;

Da resultado

Car version
3
RiggsFolly 24 jun. 2020 a las 14:24

Como sabes lo que estás buscando, solo necesitas una función:

$version = "Car version 15282";
$find = "version";
$version = strstr($version, $find, true) . $find;

Si pudiera volverse más complejo, combine y capture () todo hasta lo que desea encontrar .* y $find y reemplace eso y todo después de .* con lo que capturado $1:

$version = preg_replace("/(.*$find).*/", "$1", $version);
1
AbraCadaver 24 jun. 2020 a las 14:33