2016-07-13 7 views
-1

Ich muss das einige Zeichen aus der angegebenen Zeichenfolge entfernen.Wie entfernen Sie die unerwünschten Zeichen aus der Zeichenfolge mit PHP?

$mystring = 'test1 (07/07/2016) x 1 - 300.00 test2 test 2 (12/7/2016) x 1 - 82.00'; 

Hier brauche ich nur test1 und test2 test2 Wie kann ich das erreichen?

+2

Welche Ansätze haben Sie bisher ausprobiert? (Sie sollten Ihre Frage mit Ihren aktuellen Versuchen aktualisieren.) –

+0

Sie müssen also nur diese (07/07/2016) x 1 - 300,00 aus der Zeichenfolge entfernen? Oder etwas anderes? –

+0

Sie können 'str_replace ($ search, $ replace, $ subject) verwenden' ' –

Antwort

0

Verwenden von regulären Ausdrücken ein beliebiges Datum zu holen und die Zeichenfolge dann

$mystring = 'test1 (07/07/2016) x 1 - 300.00 test2 test 2 (12/7/2016) x 1 - 82.00'; 

$mystring = preg_replace('#\(?\d\d/\d?\d/\d\d\d\d\) ?x ?1 ?- ?[\d\.]+#', '', $mystring); 
echo $mystring; 
+0

Sie sollten * Ihre Antwort * erklären. –

+0

Meine Antwort ist jetzt aktualisiert – nospor

+0

Ich muss test1, test2 test2 bekommen – soniya

0

Sie str_replace()

Versuchen Sie diese verwenden können:

$mystring = 'test1 (07/07/2016) x 1 - 300.00 test2 test 2 (12/7/2016) x 1 - 82.00'; 
$removable_string = "(07/07/2016) x 1 - 300.00"; 
echo str_replace($removable_string, '', $mystring); // test1 test2 test 2 (12/7/2016) x 1 - 82.00 
0

Mit preg_replace() mit dem ersten Argument als ein Array von Reguläre Ausdrücke, du könntest unerwünschte Texte herausfiltern, nur die relevanten bleiben so:

<?php 

     $myString  = 'test1 (07/07/2016) x 1 - 300.00 test2 test 2 (12/7/2016) x 1 - 82.00'; 

     // REMOVE ALL DATES WITHIN PARENTHESIS AS WELL AS ALL STRINGS NOT 
     // RELATED TO THE STRING test FROM THE STRING $myString USING 
     // preg_replace WITH AN ARRAY OF REGEX AS 1ST PARAMETER: 
     $rxDates  = array(
      "#(\(\d{1,2}\/\d{1,2}\/\d{4}\))#si", 
      "#(\(\s*\d{1,2}\/\d{1,2}\/\d{4}\))#si", 
      "#(x\s*\d{1}\s*\-\s*\d{1,7}\.\d{2})#si", 
     ); 
     $cleanString = trim(preg_replace($rxDates, "", $myString)); 

     var_dump($cleanString); 
     // DUMPS:==> 'test1 test2 test 2' 

     // YOU CAN GO A STEP FURTHER REMOVING SPACES AS IN 'test 2' 
     $cleanString = preg_replace("#(test)(\s*)(\d*)#", "$1$3", $cleanString); 

     var_dump($cleanString); 
     // DUMPS:==> 'test1 test2 test2' 

     // YOU MAY WANT TO PUT THEM IN AN ARRAY IN WHICH CASE 
     // YOU MAY DO SOMETHING LIKE THIS: 
     $arrCleanString = preg_split("#\s{1,10}#", $cleanString); 

     var_dump($arrCleanString); 
     // DUMPS:    
     array (size=3) 
      0 => string 'test1' (length=5) 
      1 => string 'test2' (length=5) 
      2 => string 'test2' (length=5) 
Verwandte Themen