php中分割地址电话号码的问题

现在$info输出得字符如
北京市朝阳区某某路甲1号2楼301 (010)67891234

我想将$info输出得这段字符在进行分割
位置就在括号部分
即将前面得地址和后面得电话以<br> 分成两行

请问该如何写代码??
最新回答
风铃仙子

2024-09-29 14:22:45

我是用正则表达式来做的
<?php
$target_string="北京市朝阳区某某路甲1号2楼301 (010)67891234";
$result=preg_replace("/(\(.*?\))/","<br>$1",$target_string);
echo $result;
?>

其中 /(\(.*?\))/ 是括号里面的正则表达式,无论是(101) 还是 (102) 等等都可以一律变成在前面加个<br>
先看看这是不是你想要的结果
逗妇恼

2024-09-29 13:03:10

是空格来分割吧?(你的$info是由空格分割的)
那么这样写
$array = explode(' ', $info); // 这里前面的空格是以空格分割,还可以改成其他的..按照数据来设置
$array[0] // 输出地址
$array[1] // 输出电话号码
追问
不能以空格来分 因为部分地址里也含有空格
应该是以 左括号来分割吧?
追答
嗯.. 可以这样。
或者你用stristr进行分割(这个函数是查找字符串中第一次出现的某字符)
比如 stristr($info,'(');
就是查找字符串中第一个括号(返回包括“(”剩下的部分.. 也就是电话号码了)
当然不推荐第二种办法,第二种办法更加繁琐..
另外你还可以用高级一点的切割方法.. preg_split()函数
这个函数和explode用法相似,但是前面的分割字符还可以使用正则式来分割
追问
麻烦您直接给出代码吧
我是美工对于代码实在头疼。。。
追答
恩好的,我写出来等下给你
$info = '北京市朝阳区某某路甲1号2楼301 (010)67891234';
$array = preg_split("/((\d+))/", $info);
$array[0] // 输出为 北京市朝阳区某某路甲1号2楼301
$array[1] // 输出为 67891234
青苓菀

2024-09-29 00:24:11

分解两次
print_r($ext=explode('(',explode(')',$info)));
追问
麻烦写出完整代码谢谢