如何不切断最后一个字符与substr


how to NOT cut off the last char with substr?

得到以下字符串:http://example.de/?param=1&param2=http://example2.com/我想把所有东西都放在param2=后面。首先想到的是substr,但它从来没有给出param2=后面的所有内容。无论我如何使用它,它总是返回http://example2.com(最后一个字符丢失)。我查看了文档,但仍然没有成功。

我已经试过了:

$url = 'http://example.de/?param=1&param2=http://example2.com/';
$piece = substr($url, strpos($url, 'param2=') + 7 ,count($url)); //+7 cause of param2= should not be included
=> h
$piece = substr($url, strpos($url, 'param2=') + 7 , -count($url));
=> http://example2.com
$piece = substr($url, strpos($url, 'param2=') + 7 , +count($url));
=> h
$piece = substr($url, strpos($url, 'param2=') + 7 , -(count($url)+1));
=> http://example2.co
$piece = substr($url, strpos($url, 'param2=') + 7 , -(count($url)-1));
=>        (empty)
$piece = substr($url, strpos($url, 'param2=') + 7 , -1);
=> http://example2.com
$piece = substr($url, strpos($url, 'param2=') + 7 , -0);
=>        (empty)

所以我从来没有得到最后一个字符,也许你知道我做错了什么

您可以使用explode():-

<?php
$string = 'http://example.de/?param=1&param2=http://example2.com/';
echo explode('&param2=',$string)[1];

输出:https://eval.in/657097

如果你在评论中有疑问,请像下面这样做:-

https://eval.in/657101