PHP chaîne de remplacement après l'utilisation de file_get_contents
Bonjour je cherche à remplacer des mots dans un e-mail html, je suis le chargement à l'aide file_get_contents
Voici mon code:
<?
$message = file_get_contents("http://www.MYwebsiteExample.com/EmailConfirmation.php");
$message = preg_replace('/SAD/', "HAPPY", $message);
//Also tried this below and it does not work either
$message = str_replace('/SAD/', "HAPPY", $message);
?>
Je suis l'espoir de trouver tous les modèles de TRISTE (sensible à la casse) et les remplacer par des HEUREUX. Pour une raison que si j'utilise file_get_contents il ne semble pas fonctionner.
Grâce
Mise à JOUR: Jan 22, 2013
En fait, désolé de Correction lorsque j'ajoute le $ il ne fonctionne pas. Il n'est pas nécessaire pour mon code. Je peux faire un travail autour, mais cela ne fonctionne pas ci-dessous:
$message = str_replace("$SAD", "HAPPY", $message); ///does not work. Not sure why
$message = str_replace("SAD", "HAPPY", $message); ///without the $ it does work.
- Que signifie "il ne semble pas être au travail" signifie? Avez-vous des erreurs? Des résultats inattendus?
- ce n'
var_dump($message);
de sortie? Vous pourriez même pas être obtenir des résultats. allow_url_fopen peut-être désactivé. - ok j'ai fait une mise à jour. Il ne fonctionnera pas avec le $ et ne sais pas pourquoi. Il n'est pas nécessaire pour mon code, mais juste curieux de savoir pourquoi pas.
- Le fichier que vous êtes en tirant dans un fichier HTML, et il y a peut-être pas littérale "TRISTE" dans n'importe où. Il pourrait y avoir, par exemple,
<span class="firstletter">S</span>AD
. Si c'est le cas, vous auriez besoin d'un autre regexp, ou mieux encore, utiliser de manipulation du DOM. $SAD
est une variable appelée$SAD
(non défini dans votre code), pas le texte"SAD"
-- qu'est ce qui, dans la deuxième ligne.- Aussi, vous feriez mieux d'utiliser des balises PHP -
<?php
, pas<?
. Juste pour ramasser une bonne habitude 😉
Vous devez vous connecter pour publier un commentaire.
doit être:
Sinon, PHP va l'interpréter comme de la variable
$SAD
. Voir ce post pour une explication sur la différence entre les guillemets simples et doubles.$message = str_replace('SAD', 'HAPPY', $message);
? Pas super clair pourquoi ce signe dollar est là...%{SAD}
par exemple à la place.Vous ne devriez pas utiliser des expressions régulières pour cela; c'est simple chaîne de caractères de remplacement:
Btw, si vous utilisez
"$SAD"
pour la chaîne de recherche, PHP va essayer d'évaluer une variable appelée$SAD
, qui n'existe pas et va jeter un avis si votreerror_reporting
est configuré pour le montrer.