pb en php pour substitution de chaine de caractère

walt
Invité n'ayant pas de compte PHPfrance

20 juin 2006, 14:52

Hello.

Voila j'ai une long chaine de caractere qui se présente de la manière suivante:

toto
titi
import "X";
re
re
import "Y";
tu
ti

J'aimerai recupere le X et le Y, comment faire j'aitenté un truc avec eregi mais je n'y arrive pas quelqu'un aurait une idée ?

Eléphant du PHP | 50 Messages

20 juin 2006, 15:32

Petit exemple possible :
<?php
	
	$tab = array( 
		'un',
		'un',
		'import "test1"',
		'un',
		'un',
		'import "test2"',
		'un',
		'import "test3"',
		'import "test4"'
		);

	// Affichage du tableau
	echo "TABLEAU ORIGINAL<br>";
	foreach( $tab as $value )
	{
		echo $value . "<br>";
	}

	// On parse le tableau
	echo "<br><br>RESULTATS<br>";
	foreach( $tab as $value )
	{
		$result = "";
		// On regarde si ca correspond avec ce que l'on recherche
		if( preg_match( '`^import "([a-zA-Z0-9])*"$`' , $value ) )
		{
			// On récupère la position de la première quote
			$firstQuote = strpos( $value , '"' );
			// Puis la seconde
			// Attention ce ne sont pas les même fonctions
			$secondQuote = strrpos( $value , '"' );
			
			// On extrait notre résultat
			$result = substr( $value , ( $firstQuote + 1 ) , ( $secondQuote - $firstQuote - 1 ) );
		}
		
		// On l'affiche si il existe
		if( !empty( $result ) ) echo "Résultat trouvé : " . $result . "<br>";
	}
	
?>

walt
Invité n'ayant pas de compte PHPfrance

20 juin 2006, 16:10

Je n'utilise pas de tableau, c'est vraiment une chaine de caractère que je rècupére de mysql ! sinon en effet, j'aurais polus ou moins utilisé la meme methode !

Eléphant du PHP | 50 Messages

20 juin 2006, 17:24

Ben après à toi de l'implémenter à ta façon ^_____^ La base reste la même, j'ai juste utilisé un tableau pour l'exemple :]