Php 获取字符串的中间部分-左右移动

Php 获取字符串的中间部分-左右移动,php,string,Php,String,我有这个字符串: "cursor:pointer; background:url(http://maps.google.com/staticmap?center=38.7376583333,-9.1658583333&maptype=satellite&zoom=14&size=300x300&key=ABQIAAAAvQ9c8pqKsi8K2dzb7UM9MhS13VDmd70a9rmDETSCgg2iXt3XnhQSnX4vFKfWO-3vdWNV5HHBnS

我有这个字符串:

"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=“
”,然后从右侧开始
”&maptype=“

我已经剪了左边的部分,但现在我不知道如何剪右边的部分

编辑:


substr
接受三个参数,最后一个是返回字符串的长度(从起始位置开始)

因此,在您的例子中,您将使用
$b=substr($string,strpos($string,$inico)+8,27)

但是,如果您像这样操作字符串,则可能需要
parse_URL
explode
来提取参数(当URL样式更改时,麻烦会少一些)

$str = "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";
$str = explode('center=', $str);
$str = explode('&maptype=', $str[1]);
$str = $str[0];
echo $str;
这里有一个例子:

$originalString = "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($originalString, strpos($originalString, "url(") + 4);
$url = substr($url, 0, strrpos($url, ")"));

$params = parse_url($url, PHP_URL_QUERY);
$paramArray = explode("&", $params);

$paramArray
现在包含URL的GET参数的名称-值对。

substr
接受三个参数,最后一个是返回字符串的长度(从起始位置开始)

$str = "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";
$str = explode('center=', $str);
$str = explode('&maptype=', $str[1]);
$str = $str[0];
echo $str;
因此,在您的例子中,您将使用
$b=substr($string,strpos($string,$inico)+8,27)

但是,如果您像这样操作字符串,则可能需要
parse_URL
explode
来提取参数(当URL样式更改时,麻烦会少一些)

$str = "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";
$str = explode('center=', $str);
$str = explode('&maptype=', $str[1]);
$str = $str[0];
echo $str;
这里有一个例子:

$originalString = "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($originalString, strpos($originalString, "url(") + 4);
$url = substr($url, 0, strrpos($url, ")"));

$params = parse_url($url, PHP_URL_QUERY);
$paramArray = explode("&", $params);
$paramArray
现在包含URL的GET参数的名称-值对

$str = "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";
$str = explode('center=', $str);
$str = explode('&maptype=', $str[1]);
$str = $str[0];
echo $str;
小提琴:

此外,如果要在以后分别获取LAT和LONG,请在将其分配给
$str
后使用此代码:

$str = explode(',', $str);
$lat = $str[0];
$long = $str[1];
echo 'Lattitude ' . $lat . ' and Longtitude ' . $long;
小提琴:

此外,如果要在以后分别获取LAT和LONG,请在将其分配给
$str
后使用此代码:

$str = explode(',', $str);
$lat = $str[0];
$long = $str[1];
echo 'Lattitude ' . $lat . ' and Longtitude ' . $long;

这可能超出了您的想象,但是可以从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);

?>

编辑:那些最后一分钟的更新总是让你。。。固定的

substr()。我认为这种方法更容易理解,而且性能(我相信)应该不会有显著的不同。此外,它将处理查询字符串对的不同顺序,因为第二个“相关的”
&
检查在键之后。否则,我相信您最好分解查询字符串

如果您想使用VB和VBA中的
mid()
函数,可以使用:

<?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));

?>


这可能超出了您的想象,但是可以从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);

?>

编辑:那些最后一分钟的更新总是让你。。。固定的

substr()。我认为这种方法更容易理解,而且性能(我相信)应该不会有显著的不同。此外,它将处理查询字符串对的不同顺序,因为第二个“相关的”
&
检查在键之后。否则,我相信您最好分解查询字符串

如果您想使用VB和VBA中的
mid()
函数,可以使用:

<?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));

?>

substr()

preg_replace()

substr()

preg_replace()


使用regexp不是更好吗?请查看
strrpos()
。它与
strpos()
相同,但从字符串的末尾开始搜索。我在那里留下了双引号,但我认为您实际上并没有处理这些问题,对吗?Proposition Joe,您怎么了?使用regexp不是更好吗?请查看
strrpos()
。它与strpos()相同,但从字符串的末尾开始搜索。我在那里留下了双引号,但我认为你实际上并没有处理这些问题,对吗?Joe,你怎么了?但是LAT和LON的长度并不总是相同的。我需要有&maptype的strpost,但是LAT和LON的长度并不总是相同的。我需要有&maptype的strpost如果我像你一样在$str中定义字符串,它会起作用,但是我得到的字符串是:$h1['style'=$html->find('td.sendGps',0)->style;然后我做了$str=$h1['style'],但不起作用。上面写着“注意……数组到字符串的转换”,但是echo$str和echo$h1['style']的结果相同。你应该试试
var\u dump($str)var\u转储时不重复($h1['style'),会发生什么?如果我在$str中像你一样定义字符串,它会工作,但我得到的字符串是:$h1['style']=$html->find('td.sendGps',0)->style;然后我做了$str=$h1['style'],但不起作用。上面写着“注意……数组到字符串的转换”,但是echo$str和echo$h1['style']的结果相同。你应该试试
var\u dump($str)