2017-02-23 1 views
-1

J'ai une simple déclaration de PHP mais elle ne cesse de me donner 'Internal 500'. Quelqu'un peut-il voir ce qui ne va pas avec ce code?PHP si l'instruction ne fonctionne pas dans preg_replace

(Il fonctionne sans 'si')

$fullyfiltered = preg_replace('/<span>(.*?)<\/span>/', '<div class="chat-message ' if('$1'=="MichaelD"){'me'}else{'chat-midnightblue'}'"><div class="chat-contact"><img src="/assets/demo/avatar/tswan.png" alt=""></div><div id="chat-text" class="chat-text">$1: ', $nearlyfiltered); 

EDIT - script complet:

<script> 
    setInterval(function(){ 
    document.getElementById('chat-text').innerHTML = ''; 
    <?php 
    $fh = fopen('chat.txt','r'); 
    while ($line = fgets($fh)) { 
    //echo "<p>" . $line . "</p>"; 
    $filtered = str_replace("'", "\\'", $line); 
    $almostfiltered = str_replace("<span></span>\n", "", $filtered); 
    $nearlyfiltered = trim(preg_replace('/\s\s+/', ' ', $almostfiltered)); 
    $fullyfiltered = preg_replace('/<span>(.*?)<\/span>/', '<div class="chat-message ' if('$one'=="MichaelD"){'me'}else{'chat-midnightblue'}'"><div class="chat-contact"><img src="/assets/demo/avatar/tswan.png" alt=""></div><div id="chat-text" class="chat-text">$1: ', $nearlyfiltered); 
    if(!empty($fullyfiltered)){ 
     $endingp = "</div></div>';"; 
    } else { 
     $endingp = "';"; 
    } 
    echo "document.getElementById('chat-text').innerHTML = document.getElementById('chat-text').innerHTML + '" . $fullyfiltered . $endingp; 
    } 
    fclose($fh); 
    ?>  
    },5000); 
</script> 
+0

$ 1 n'est pas une variable. Essayez $ un à la place. (Vous ne pouvez pas utiliser de nombres pour les variables php) – Option

+0

erreurs fixes même si je change cela –

Répondre

1

rappel doit être une fonction, non seulement des pièces de script au hasard. S'il vous plaît lire le manuel (http://php.net/manual/en/function.preg-replace-callback.php)

+0

pouvez-vous me donner un exemple en utilisant mon script s'il vous plaît? –

+0

désolé, je ne suis pas trop grand avec regex donc je ne peux pas vous donner un exemple exact, simplement une suggestion. Vous pouvez trouver des exemples sur la page de manuel de PHP, mais les intégrer à votre code est en fait une partie d'être un développeur, alors essayez d'abord la suggestion et ensuite demander de l'aide si vous avez des problèmes. – Auris