There are several ways.
The one I would prefer, for being more practical (=P):
Use the explode
, which breaks the string where it determines.
<?php
$texto = 'lang[en-US].php';
// Seu $texto
$texto = explode('[', $texto);
// $texto agora possui: [0] => 'lang', [1] => en-US].php
$texto = explode(']', $texto[1]);
// $texto agora possui [0] => en-US, [1] => .php
echo $texto[0];
// Resultado: en-US
STRISTR: I want something with fewer lines!
You can use the stristr
, which has similar function to explode
, along with as str_replace
.
$texto = 'lang[en-US].php';
$cortado = stristr(stristr($texto, '['), ']', true);
// Escolha um para remover os [:
$texto = str_replace('[', '', $cortado);
// OU
$texto = substr($cortado, 1);
REGEX: I want to use REGEX
Because REGEX is the rule of three of programming.
$texto = 'lang[en-US].php';
preg_match('/\[(.*?)\]/', $texto, $cortado);
// Escolha um para remover os []:
$texto = str_replace('[', '', str_replace(']', '', $cortado[0]));
// OU
$texto = substr($cortado[0], 1, -1);
//OU
$texto = $cortado[1];
Note:
The str_replace
can be exchanged for substr
.
VLWZÃO HEHEH ;)
– Pedro Quezado
I added more alternatives =P
– Inkeliz