[PHP] Spaties en regeleindes uit een string halen

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Ik heb een functie geschreven om meerdere woorden in één keer te kunnen vervangen, alleen nu werkt ´ie wel bij een input van "a, b, c" maar niet bij een input van:
"a,
b,
c"


terwijl ik de string wel laat strippen van regeleindes :?

De functie:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
##Uitgebreide versie van de str_replace-functie
    function AdvanceReplace($sString, $sWordsToBeReplaced, $sReplacements)
    {
        //Strippen van e.v.t. spaties en regeleindes
        $sWordsToBeReplaced = str_replace(" ", "", $sWordsToBeReplaced);
        $sWordsToBeReplaced = str_replace("\n", "", $sWordsToBeReplaced);
        $sReplacements = str_replace(" ", "", $sReplacements);
        $sReplacements = str_replace("\n", "", $sReplacements);
        
        //Omzetten naar arrays
        $sWordsToBeReplaced = explode(",", $sWordsToBeReplaced);
        $sReplacements = explode(",", $sReplacements);
        
        
        //##################### DIT STRAX MET ARRAY_COMBINE DOEN!!! ################
        $i = 0;
        
        foreach ($sWordsToBeReplaced as $sWordsToBeReplacedElement)
        {
            $sString = str_replace($sWordsToBeReplacedElement, $sReplacements[$i], $sString);
            
            $i++;
        }
        
        return($sString);
    }


Output GOED:
PHP:
1
2
3
4
5
6
7
$sWordsToBeReplaced = "1, 2, 3, 4";
$sReplacements= "a, b, c, d";
                     
echo(AdvanceReplace("1, 2, 3, 4 hoedje van papier :)", $sWordsToBeReplaced, $sReplacements));

//Output:
a, b, c, d hoedje van papier :)



Output FOUT:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$sWordsToBeReplaced = "1, 
                       2, 
                       3, 
                       4";
                       
$sReplacements= "a, 
                 b, 
                 c, 
                 d";
                                     
echo(AdvanceReplace("1, 2, 3, 4 hoedje van papier :)", $sWordsToBeReplaced, $sReplacements));

//Output:
a, b, 3, 4 hoedje van papier :)


Kan iemand mij dus vertellen hoe ik zorg dat:
"a, b, 3, 4 hoedje van papier" "a, b, c, d hoedje van papier" wordt?

Verwijderd

Topicstarter
Dat
PHP:
1
//##################### DIT STRAX MET ARRAY_COMBINE DOEN!!! ################
moet je trouwens gewoon negeren, want dat is een noot die ik voor mezelf erbij heb gezet :)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 19:46

crisp

Devver

Pixelated

heb je er wel eens over nagedacht dat bijvoorbeeld onder windows een regeleinde \r\n is, en onder mac \r, en onder linux \n?

als je alle whitespace wilt strippen kan je ook dit doen:

PHP:
1
$string = preg_replace('/\s/', '', $string);

[ Voor 34% gewijzigd door crisp op 17-09-2003 00:33 ]

Intentionally left blank


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
[rml][ CF] replace enter (helemaal)[/rml]
Topic is niet eens een dag oud.

{signature}