обнаружить и заменить идентификатор партнера по URL - PullRequest
0 голосов
/ 29 апреля 2020

Я пытался определить идентификатор партнера по URL для сайта, работающего в PHP. Примеры URL:

. Я изменил идентификатор партнера на реальные.

https://flipkart.com/product-name/product-id?marketplace=FLIPKART&affid=honor&ppn=something
https://flipkart.com/product-name/product-id?marketplace=FLIPKART&affid=apple&ppn=something
https://flipkart.com/product-name/product-id?marketplace=FLIPKART&affid=sony&ppn=something

Я хочу заменить его на affid=sthachilo

Эти URL будут сохранены в база данных. Поэтому я не могу использовать $_GET["affid"]

при отображении URL, я просто хочу заменить идентификатор партнера. или я могу использовать его, чтобы заменить идентификатор партнера и сохранить его в базе данных. Но я не знаю, как обнаружить раздел affid= и заменить все, что там есть.

Я попробовал следующий код, но, похоже, он не работает

    $url = "https://flipkart.com/product-name/product-id?marketplace=FLIPKART&affid=sony&ppn=something";
    $newurl = preg_replace('/&affid=(\d+)/','&affid=sthachilo',$url);
    echo $newurl;

Вот реальный Пример URL с моим идентификатором партнера.

https://www.flipkart.com/complan-kesar-badam/p/itmew2cdj5dmthjk?marketplace=FLIPKART&iid=e6c16ab0-c15d-49c2-843e-cf4a5104c53b.MDMETGN5YZZ5MRYG.SEARCH&ppt=browse&lid=LSTMDMETGN5YZZ5MRYGTBFFJO&srno=b_1_1&pid=MDMETGN5YZZ5MRYG&affid=sthachilo&ssid=7bwqga35j40000001588133282410&ppn=browse

по крайней мере, я хочу удалить все после itmew2cdj5dmthjk и добавить идентификатор партнера в конце. например

https://www.flipkart.com/complan-kesar-badam/p/itmew2cdj5dmthjk?affid=sthachilo

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

вы можете использовать parse_url для получения частей URL, а затем использовать parse_str для получения запроса URL

$url = "https://flipkart.com/product-name/product-id?marketplace=FLIPKART&affid=sony&ppn=something";
// parse url
$parse = parse_url($url);
// parse the query
parse_str($parse['query'], $query);
// replace the affid with your desired value
$query['affid'] = 'samsung';
// rebuild the query
$parse['query'] = http_build_query($query);
// rebuild the final url
$final_url = $parse['scheme'].'://'.$parse['host'].$parse['path'].'?'.$parse['query'];
echo $final_url
// output : https://flipkart.com/product-name/product-id?marketplace=FLIPKART&affid=samsung&ppn=something
0 голосов
/ 29 апреля 2020

Заменить указанный идентификатор партнера на android:

$url = "https://flipkart.com/product-name/product-id?marketplace=FLIPKART&affid=apple&ppn=something";

$newurl = preg_replace('/&affid=(.+)?&/','&affid=android&',$url);

Возможно, это не лучший способ сделать это, поскольку предполагается, что affid окружен &, но если вы знаете, что это всегда будет в таком случае это сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...