Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-如何获取两个特定字符之间的字符串_Php_String_Variables - Fatal编程技术网

PHP-如何获取两个特定字符之间的字符串

PHP-如何获取两个特定字符之间的字符串,php,string,variables,Php,String,Variables,我现在得到了一个包含数字的两边,在两个特定数字之间有一个字符串,它显示了一组数字,假设我们得到了这个123456789$numbers1234567,我想得到$numbers的结果,那么我怎么才能得到它呢? 谢谢如果你知道夹在中间的两条线,那么你可以去掉你要找的线 不太雅致,但这很有效: $str1 = "123456789"; $str2 = "1234567"; $numberstr = "123456789"; $searchstring = "123456789".$numberstr

我现在得到了一个包含数字的两边,在两个特定数字之间有一个字符串,它显示了一组数字,假设我们得到了这个
123456789
$numbers
1234567
,我想得到
$numbers
的结果,那么我怎么才能得到它呢?
谢谢

如果你知道夹在中间的两条线,那么你可以去掉你要找的线

不太雅致,但这很有效:

$str1 = "123456789";
$str2 = "1234567";
$numberstr = "123456789";

$searchstring = "123456789".$numberstr."1234567";

$limit = 1;
$numbers = substr($searchstring, 0, strlen($searchstring) - strlen($str2)); // Remove the end of the string with length = $str2
$numbers = substr($numbers, strlen($numbers) - strlen($str1)); // Remove the most string from the beginning

print $numbers;
输出:

123456789
总之,它从末尾删除已知字符串,然后从开头删除另一个已知字符串


更新:根据注释,使用两个substr查找想要的字符串

试试这个如果$numbers与第一组或最后一组数字相同会发生什么?例如:
$numbers=1234567
因此您将在
12345678912345671234567
@kennypu确定是否有其他方法获取特定数字后的字符?这只是一个问题。如果您只是使用分隔符,那么只使用数字以外的内容更有意义。例如,
[num]$numbers[num]或|$numbers |
欢迎使用堆栈溢出。我们通常希望问题能显示出一些研究成果。您是否可以更新您的问题,以显示您尝试了什么,并解释尝试失败的原因?如果
$numberstr=123456789
我将使用2
substr
,您的方法将失败。对我来说似乎更干净。很好。我已经习惯了java实现,您可以在str_replace中限制替换的数量。学习每天都知道的东西。谢谢你的评论。谢谢你的帮助,太棒了!!