好的,这就是我正在做的事情。
一些背景知识:我正在对其他人构建的现有 WordPress 网站进行更改。他们创建了一个文本区域,客户可以在其中复制和粘贴一个嵌入谷歌地图的 iframe。这适用于客户在其网站上发布的属性。
困境:这一切都很好,但我正在为他们的属性重建详细信息页面,我想删除所有 iframe 信息,只留下属性地址,以便我可以使用它通过 a 创建新地图谷歌地图 V3 jQuery 插件。
我想转这个:
<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>
进入这个:
5475 NW 75 AVE, Ocala FL 34482
我认为我通过研究 preg_replace() 走在正确的轨道上,但正则表达式正是让我着迷的原因。或者,如果我可以提取也会有帮助的坐标。我可以使用地址或经纬度坐标来完成工作。
提前感谢我能得到的任何帮助!
编辑解决方案,因为我的 SO 代表仍然很低:
多亏了马里奥,我才得以完成工作。这是我对任何可能有帮助的人的最终代码。
你从这个开始:
<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>
你想要这个:
5475 NW 75 AVE,佛罗里达州奥卡拉 34482
这对我有用:
// 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;