これはあなたがやりたいことよりも多いかもしれませんが、URLとURLからクエリ文字列を抽出して分解することは可能です:
<?php
$data = "cursor:pointer; background:url(http://maps.google.com/staticmap?center=38.7376583333,-9.1658583333&maptype=satellite&zoom=14&size=300x300&key=ABQIAAAAvQ9c8pqKsi8K2dzb7UM9MhS13VDmd70a9rmDETSCgg2iXt3XnhQSnX4vFKfWO-3vdWNV5HHBnSLWLQ&sensor=true&hl=pt) no-repeat";
$url = substr($data, strpos($data, 'url(') + 4);
$url = parse_url(substr($url, 0, strpos($url, ') ')));
print_r($url);
$query = explode('&', $url['query']);
$querypairs = array();
for ($i = 0, $l = count($query); $i < $l; $i++) {
$pair = explode('=', $query[$i]);
$querypairs[$pair[0]] = $pair[1];
}
print_r($querypairs);
?>
http://codepad.org/xRZ3zEcU
さて、後で使用するためにCSS定義に再構成できるようにするために本当にそれを実行したい場合は、それを逆にすることができますが、おそらく同様の方法でCSSを分解しようとします。または、あまり意味がないので、前の定義に対してaを実行し、結果のURLを再構築しstr_replace()
た後にを。に置き換えます。$url
http_build_query()
そして、あなたが本当に、本当にそれの残りの部分を気にしないでください...
<?php
$data = "cursor:pointer; background:url(http://maps.google.com/staticmap?center=38.7376583333,-9.1658583333&maptype=satellite&zoom=14&size=300x300&key=ABQIAAAAvQ9c8pqKsi8K2dzb7UM9MhS13VDmd70a9rmDETSCgg2iXt3XnhQSnX4vFKfWO-3vdWNV5HHBnSLWLQ&sensor=true&hl=pt) no-repeat";
$center = substr($data, strpos($data, '?center=') + 8);
$center = substr($center, 0, strpos($center, '&'));
print_r($center);
?>
http://codepad.org/RiJHTX6p
編集:それらの直前の更新は常にあなたを取得します...修正されました。
substr()
別々の行の最初/最後で一致を行うので、2番目はstrpos()
最初の一致の結果に相対的です。この方法は理解しやすいと思いますし、パフォーマンス(私は信じています)に大きな違いはないはずです。さらに、2番目の「関連する」&
チェックがキーの後に最初にあるため、クエリ文字列ペアのさまざまな順序を処理します。それ以外の場合は、クエリ文字列を分解したほうがよいと思います。
またmid()
、VBやVBAのような機能が必要な場合は、次を使用できます。
<?php
function mid($start, $end, $str) {
$str = substr($str, strpos($str, $start) + strlen($start));
return substr($str, 0, strpos($str, $end));
}
$data = "cursor:pointer; background:url(http://maps.google.com/staticmap?center=38.7376583333,-9.1658583333&maptype=satellite&zoom=14&size=300x300&key=ABQIAAAAvQ9c8pqKsi8K2dzb7UM9MhS13VDmd70a9rmDETSCgg2iXt3XnhQSnX4vFKfWO-3vdWNV5HHBnSLWLQ&sensor=true&hl=pt) no-repeat";
print_r(mid('?center=', '&', $data));
?>
http://codepad.org/2rjmC4PL