Bon, voici ce que je vais faire.Vous voulez extraire l'adresse de la rue à partir d'un iframe intégré de Google Maps
En arrière-plan: Je modifie un site Web WordPress existant créé par quelqu'un d'autre. Ils ont créé une zone de texte dans laquelle le client copie et colle un iframe incorporé pour une carte Google. C'est pour les propriétés que le client publie sur son site Web.
Le dilemme: Tout cela est bien beau, mais je reconstruire la page de détail pour leurs propriétés et je veux dépouiller toutes les informations iframe et ne laisser que l'adresse de la propriété afin que je puisse l'utiliser pour créer une nouvelle carte via un plugin jQuery Google Maps V3.
Je veux tourner ceci:
<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=5475+NW+75+AVE,+Ocala+FL+34482&aq=&sll=29.300577,-82.294762&sspn=0.006755,0.013304&vpsrc=0&ie=UTF8&hq=&hnear=5475+NW+75th+Ave,+Ocala,+Florida+34482&t=m&z=14&ll=29.244022,-82.241361&output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=q&source=embed&hl=en&geocode=&q=5475+NW+75+AVE,+Ocala+FL+34482&aq=&sll=29.300577,-82.294762&sspn=0.006755,0.013304&vpsrc=0&ie=UTF8&hq=&hnear=5475+NW+75th+Ave,+Ocala,+Florida+34482&t=m&z=14&ll=29.244022,-82.241361" style="color:#0000FF;text-align:left">View Larger Map</a></small>
Dans ceci:
5475 NW 75 AVE, Ocala FL 34482
Je pense que je suis sur la bonne voie en regardant dans preg_replace(), mais l'expression régulière car c'est ce qui m'arrive. Alternativement, si je peux extraire les coordonnées qui aideraient aussi. Je peux utiliser l'adresse ou les coordonnées lat et long pour faire le travail.
Merci d'avance pour toute assistance que je peux obtenir!
Modifier avec une solution depuis mon représentant SO est encore faible:
Merci à Mario, j'ai pu faire le travail. Voici mon code finalisé pour tous ceux qui peuvent aider.
Vous avez commencé avec ceci:
<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=5475+NW+75+AVE,+Ocala+FL+34482&aq=&sll=29.300577,-82.294762&sspn=0.006755,0.013304&vpsrc=0&ie=UTF8&hq=&hnear=5475+NW+75th+Ave,+Ocala,+Florida+34482&t=m&z=14&ll=29.244022,-82.241361&output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=q&source=embed&hl=en&geocode=&q=5475+NW+75+AVE,+Ocala+FL+34482&aq=&sll=29.300577,-82.294762&sspn=0.006755,0.013304&vpsrc=0&ie=UTF8&hq=&hnear=5475+NW+75th+Ave,+Ocala,+Florida+34482&t=m&z=14&ll=29.244022,-82.241361" style="color:#0000FF;text-align:left">View Larger Map</a></small>
Et vous voulez ceci:
5475 NW 75 AVE, Ocala FL 34482
C'est ce qui a fonctionné pour moi:
// We first find and extract the 'src' from the iframe
// $map is my original iframe embed
// $q is our extracted and stripped text
preg_match('#q=([^&"]+)#', $map, $match)
and ($q = urldecode($match[1]));
// Now you can echo out the address or use it elsewhere.
// In my case, I am using jQuery goMap (http://www.pittss.lv/jquery/gomap)
// and can add a new point on the map via $q
echo $q;
Bienvenue dans Stack Overflow! S'il vous plaît s'abstenir d'analyser HTML avec RegEx comme il va [vous rendre fou] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) . Utilisez un [analyseur HTML] (http://stackoverflow.com/questions/292926/robust-mature-html-parser-for-php) à la place. –
Fondamentalement, vous voulez juste extraire la partie 'q =' de l'URL interne alors? Alors oui, une regex pourrait faire. (Ne vous dérange pas la confusion stupide de l'analyse et l'appariement ici sur SO.) – mario
@Truth Wow, je n'avais pas examiné dans ce domaine, merci! Cela semble également très intelligent. Savez-vous comment j'intégrerais ceci dans une solution pour mon problème? Je suppose que je peux faire un nettoyage d'expression régulière après que mon contenu est chargé? – Daryn