![](/img/trans.png)
[英]How do I select all rows from my database that have a value that is part of a certain string?
[英]How do I select a certain part of a string in PHP?
我有一個網址數組。 URL看起來類似於:
https://maps.googleapis.com/maps/api/place/details/json?placeid= $ place_id&key = myAPIkey
$place_id
是一個在每個網址中都會更改的變量。 我希望能夠僅選擇網址的這一部分。
因此,當我遍歷URL時,我希望它提取正在使用的URL的那一部分,並將其分配給我可以在代碼中使用的變量( $place
)。 我已經看過strpos()
和/或substr()
,但是我不知道如何使用它們,因為$place_id
每次$place_id
改變。 我認為$place_id
的長度始終是相同的,但是我不是100%肯定,因此最好使用適合不同長度的解決方案。
另外,我已經在數組中有多個$ place_ids。 我正在通過使用生成URL數組
foreach ($place_ids as $place_id) {
array_push(
$urls,
"https://maps.googleapis.com/maps/api/place/details/json?placeid=$place_id&key=myAPIkey"
);
}
然后我正在使用
foreach ($urls as $url){}
遍歷此數組。 如果有一種方法,我可以通過某種檢查或使用它們在數組中的位置來確保$place_id
的值與URL的值一致。
很抱歉,如果其中任何一個不正確,並且有任何我可以回答的問題或希望我改善問題的方式,我將很高興。
由於您在此處處理URL,因此您可能希望使用PHP的內置幫助器parse_url()和parse_str() 。
例如,您可以將GET參數與parse_url分開,然后使用parse_str將每個參數提取到數組中:
$url = 'https://maps.googleapis.com/maps/api/place/details/json?placeid=<arg1>&key=<arg2>';
$args = [];
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $args);
// args => ["placeid" => "<arg1>", "key" => "<arg2>"]
正則表達式可以
$match = array();
$url = "https://maps.googleapis.com/maps/api/place/details/json?placeid=346758236546&key=myAPIkey";
preg_match('/[?&]placeid=([^&]+)(?:$|.*)/', $url, $match);
var_dump($match[1]); // string(12) "346758236546"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.