Utiliser regex dans une chaîne pour strpos ()
Je veux obtenir les scripts à la recherche de l' $open_email_msg lequel les différents e-mails ont des informations différentes mais le même format que ci-dessous.
Je n'ai pas vraiment utilisé les regex beaucoup, mais ce que je veux faire, c'est à chaque fois que je l'ai, à la recherche de la chaîne, il serait de la recherche pour "Titre: [données pour le titre]", "Catégories: [données pour les catégories]. Je demande car je ne pense pas que quelque chose comme
strpos($open_email_msg, "Title: (*^)");
serait même travail.
C'est juste un extrait de l'ensemble du code, le reste insère les infos dans une table MySQL, puis est affecté à un Article de Nouvelles sur le site.
Quelqu'un peut-il m'aider à trouver une solution à cette s'il vous plaît?
Stricte format de message électronique:
Mise À Jour Des Nouvelles
Titre: Le Titre De L'Article
Tags: tag1 tag2
Catégories: Article de la Catégorie, 2ème Catégorie Article
Extrait:
Article extrait.
Message: L'Article De Message. Les Images. Plus de texte,
plus de texte. Lorem impsum dolor sit amet.
<?php
//These functions searches the open e-mail for the the prefix defining strings.
//Need a function to search after the space after the strings because the subject, categories, snippet, tags and message are constant-changing.
$subject = strpos($open_email_msg, "Title:"); //Searches the open e-mail for the string "Title"
$subject = str_replace("Title: ", "" ,$subject);
$categories = strpos($open_email_msg, "Categories:"); //Searches the open e-mail for the string "Categories"
$snippet = strpos($open_email_msg,"Snippet"); //Searches the open e-mail for the string "Snippet"
$content = strpos($open_email_msg, "Message"); //Searches the open-email for the string "Message"
$tags = str_replace(' ',',',$subject); //DDIE
$uri = str_replace(' ','-',$subject); //DDIE
$when = strtotime("now"); //date article was posted
?>
source d'informationauteur brinard sweeting
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser le
PREG_OFFSET_CAPTURE
drapeau pourpreg_match
. Quelque chose comme ceci:Cela devrait vous donner la position initiale de la corde.
Noter que la regex que j'utilise peut-être tort et de ne pas prendre en compte les fins de lignes et d'autres choses, mais c'est un autre sujet. 🙂
MODIFIER. Une meilleure solution pour ce que vous voulez (si je comprends bien) serait quelque chose comme ceci:
Vous devez ensuite obtenir le titre dans le
$title
variable, et une chaîne vide si aucun titre n'a été trouvé.Vous pouvez utiliser preg_match au lieu de strpos pour les regex