2016-03-11 4 views
1

$response var a un composant appelé custom_test_name qui ressemble à ci-dessous:écho limite de la variable en PHP pour obtenir les caractères souhaités

[Test_Name]ad.no.check1.check2.check3 

et est ici le petit code PHP:

<?php 
    echo "<class="."com.tests.".$response["custom_test_name"][1]."</class>"; 
?> 

Cette impression le <class=com.tests.[</class> ..check premier caractère [ de custom_test_name et similaire écho de ["custom_test_name"][2] estampes T, [3] estampes e .... Toutefois, comment imprimer/écho que les spécificités dans ce cas ?. Par exemple. faisant écho juste ce ad.no.check1.check2.check3 et en éliminant cela [Test_Name]. Existe-t-il un moyen de spécifier la gamme/une autre approche?

+1

Cela dépend. Si vous connaissez à l'avance le texte à l'intérieur de '[]', vous pouvez utiliser ['str_replace()'] (http://php.net/manual/fr/function.str-replace.php), sinon vous devez utiliser ['preg_replace()'] (http://php.net/manual/fr/function.preg-replace.php) – fusion3k

Répondre

1

Si custom_test_name va toujours commencer par [TEST_NAME] vous pouvez le supprimer avec quelque chose comme

$trimmed = str_replace('[Test_Name]', '', $response->custom_test_name); 
echo "<class="."com.tests." . $trimmed . "</class>"; 

Si ce n'est pas toujours va être comme ça, mais va commencer par [quelque chose], vous pouvez utiliser quelque chose comme

$trimmed = preg_replace("/(\[.*\])/", '', $response->custom_test_name); 
echo "<class="."com.tests." . $trimmed . "</class>"; 
+0

Oui, custom_test_name va toujours commencer par [Test_Name] et donc la première approche fonctionne. Merci @Rodrigo –