Forum und email

ereg_replace

(PHP 4, PHP 5)

ereg_replace — Αντικατάσταση regular expression

Περιγραφή

string ereg_replace ( string $pattern , string $replacement , string $string )

Note: Η συνάρτηση preg_replace(), η οποία καταλαβαίνει συντακτικό regular expression συμβατό με Perl, χρησιμοποιείται συχνά σαν μια πιο γρήγορη εναλλακτική συνάρτηση αντί για την ereg_replace().

Αυτή η συνάρτηση ψάχνει στο string για εμφανίσεις του pattern , και αντικαθιστά το κείμενο κάθε εμφάνισης με το replacement .

Επιστρέφει το τροποποιημένο string. (Που μπορεί να είναι και το ίδιο με το αρχικό string αν δεν υπάρχουν εμφανίσεις που θα αντικατασταθούν.)

Αν το pattern περιέχει substrings μέσα σε παρενθέσεις, το replacement μπορεί να περιέχει substrings της μορφής \\χ (όπου το χ είναι ένα νούμερο 0-9), τα οποία θα αντικατασταθούν από το κείμενο που ταίριαξε με το substring χ. Στο replacement η έκφραση \\0 παράγει ολόκληρο το αρχικό string. Μέχρι 9 substrings μπορούν να χρησιμοποιηθούν. Ζευγάρια παρενθέσεων μπορούν να περιέχουν άλλα ζευγάρια. Σε αυτή την περίπτωση τα νούμερα καθορίζονται από την παρένθεση που ανοίγει το ζευγάρι.

Αν δεν βρεθούν εμφανίσεις στο string , τότε επιστρέφεται η παράμετρος string χωρίς αλλαγές.

Για παράδειγμα το παρακάτω κομμάτι κώδικα τυπώνει "Αυτό ήταν ένα test" τρείς φορές:

Example#1 Παράδειγμα συνάρτησης ereg_replace()

$string = "Αυτό είναι ένα test";
echo ereg_replace (" είναι", " ήταν", $string);
echo ereg_replace ("( )είναι", "\\1ήταν", $string);
echo ereg_replace ("(( )είναι)", "\\2ήταν", $string);

Κάτι που αξίζει να σημειωθεί είναι ότι όταν χρησιμοποιείτε μια ακέραια τιμή στηη θέση της παραμέτρου replacement , μπορεί να μη πάρετε τα αποτελέσματα που ίσως περιμένατε. Αυτό συμβαίνει γιατί η συνάρτηση ereg_replace() προσπαθεί να ερμηνεύσει τον αριθμό σαν την τιμή ASCII ενός χαρακτήρα και γράφει αυτόν τον χαρακτήρα. Για παράδειγμα:

Example#2 Παράδειγμα συνάρτησης ereg_replace()

<?php
/* Αυτό δεν θα δουλέψει όπως είναι αναμενόμενο. */
$num = 4;
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string;   /* Έξοδος: 'This string has   words.' */

/* Αυτό θα δουλέψει. */
$num = '4';
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string;   /* Output: 'This string has 4 words.' */
?>

Example#3 Αντικατάσταση των URL με συνδέσεις

$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                     "<a href=\"\\0\">\\0</a>", $text);

Δείτε επίσης τις ereg(), eregi(), eregi_replace(), str_replace(), και preg_match().