问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

高分求一段PHP程序,或者思路。字符串形式类似(((a)b)c)转换为array(array(array('a'),'b'),'c')

发布网友 发布时间:2022-04-07 05:25

我来回答

4个回答

懂视网 时间:2022-04-07 09:46

eval参数

code:

需要被执行的字符串

代码不能包含打开/关闭 PHP tags。比如, 'echo "Hi!";' 不能这样传入: '<?php echo "Hi!"; ?>'。但仍然可以用合适的 PHP tag 来离开、重新进入 PHP 模式。比如 'echo "In PHP mode!"; ?>In HTML mode!<?php echo "Back in PHP mode!";'。

除此之外,传入的必须是有效的 PHP 代码。所有的语句必须以分号结尾。比如 'echo "Hi!"' 会导致一个 parse error,而 'echo "Hi!";' 则会正常运行。

return 语句会立即中止当前字符串的执行。

代码执行的作用域是调用 eval() 处的作用域。因此,eval() 里任何的变量定义、修改,都会在函数结束后被保留。

eval返回值

eval() 返回 NULL,除非在执行的代码中 return 了一个值,函数返回传递给 return 的值。 PHP 7 开始,执行的代码里如果有一个 parse error,eval() 会抛出 ParseError 异常。在 PHP 7 之前, 如果在执行的代码中有 parse error,eval() 返回 FALSE,之后的代码将正常执行。无法使用 set_error_handler() 捕获 eval() 中的解析错误。

eval使用示例

<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
echo $str. "
";
eval("$str = "$str";");
echo $str. "
";
?>

以上例程会输出:

This is a $string with my $name in it.
This is a cup with my coffee in it.

热心网友 时间:2022-04-07 06:54

我这里有个思路,你可以参考下。

$str = '(((a)b)c)';
$str = preg_replace('/(\w+)/','"\1"',$str); // 在连续的字母两边加上引号,((("a")"b")"c")
$str = str_replace(array('(',')'),array('array(','),'),$str); // 把括号()替换成 array(),
$str = trim($str,','); // 把最后多余的逗号去掉。
eval('$rs='.$str); // 将$str当做php代码执行,相当于赋值给$rs
var_mp($rs);追问这个思路靠谱,先追分,再追问。
你好,帮我修改一下正则,连续的字母两边如果有引号就不加,没有再加。其他的我自己再改
我明天上班来处理

追答$str = '(((“a”)b)c)';
$str = str_replace('"','',$str); // 清除双引号
$str = str_replace('\'','',$str); // 清除单引号

其他的同上,

热心网友 时间:2022-04-07 08:12

$str = "(((a)b)c)";
$str = preg_replace('/([^()]+)/i', '"\1"' , $str);
$str = str_replace('""', '"', str_replace('\'"', '"', $str)); //追加:解决引号问题
$str = str_replace(')', '),', $str);
$str = substr($str, 0, -1);
$str = str_replace('(', '[', $str);
$str = str_replace(')', ']', $str);
$arr = json_decode($str);
print_r($arr);exit;
以上是我测试的代码,思路就是试图先转换为json格式追问可能我没完全表达清楚,字符串的每一层都可能有多个并列的值分别表示不同的数组元素,例如((g,(a,d)b,e)c,f)对应
array(
array(
'g',
array('a','d'),
'b',
'e'
),
array('c','f')
)

追答把$str = preg_replace('/([^()]+)/i', '"\1"' , $str);改成
$str = preg_replace('/([^(),]+)/i', '"\1"' , $str);即可,其它不动

不过不对哦,计算结果是
Array
(
[0] => Array
(
[0] => g
[1] => Array
(
[0] => a
[1] => d
)

[2] => b
[3] => e
)

[1] => c
[2] => f
)
你核对一下,我觉得是你录入的问题 array('c','f')应该是'c', 'f',它们和array('g'...)是同级别的

热心网友 时间:2022-04-07 09:47

应该可以用正则来匹配替换追问能不能具体一点

怎样把php数组转换成字符串,php implode

首先,创建一个PHP文件,定义一个示例数组,例如:$arr = array("I","have","an","apple")。接下来,关键步骤是调用implode()函数,传入数组变量和一个可选的分隔符(默认为空字符)。例如,要将数组转换为无分隔符的字符串,可以使用$str = implode($arr);如果需要添加分隔符,如"+++”,则...

PHP 如何把 字符串 转为数组

回答:正则做 &lt;?php$t=' code:-1 ErrMsg:用户不存在';preg_match('/code:(-?\d+)\s+ErrMsg:(.+)/', $t,$m);$a=array();$a['code']=intval($m[1]);$a['ErrMsg']=$m[2];var_dump($a);?&gt;代码未测试,自多体会...

Python中如何将str格式的字符串转化成array格式的数组

b = '146,135,123,145't = b.split(',')# py2results = map(int,t)# py3# results = list(map(int,t))a = np.array(results)

JavaScript如何将字符串转换为数组?分享这6种方法

首先,split('')方法,作为ES6的原生工具,简单高效,但对Unicode字符处理有限,需注意编码问题。其次,扩展语法([…str])适用于ES2015,方便易用,不受字符限制。接着,Array.from(str)则通过创建新数组实现,适用于需要浅拷贝的情况。然而,Object.assign([], str)虽然能复制对象属性,但它是深拷贝...

PHP如何把JSON字符串转为数组

在PHP中可以使用“json_decode()”函数把JSON字符串转为数组,该函数的作用对JSON格式的字符串进行解码,其语法为“json_decode(str,assoc)”,使用时将字符串传入第1个参数并将第2个设置为TRUE即可。示例代码:json = '{"a"1,"b"2,"c"3,"d"4,&amp;...

$a=array(array(a=&gt;'1',b=&gt;'b'),array(a=&gt;'1',b=&gt;'c'),array(a=&gt;'d...

a=array(array(a=&gt;'1',b=&gt;'b'),array(a=&gt;'1',b=&gt;'c'),array(a=&gt;'d',b=&gt;'e'));for ($i=0;$i&lt;count($a);$i++){ if($arr[$a[$i]['a']]==""){ arr[$a[$i]['a']]=$a[$i]['b'];} else { arr[$a[$i]['a']].=",".$a[$i]['b'];} } i=...

PHP的问题,编写一个程序对三个数按由小到大的顺序排列

以下是一个简单的PHP程序,用于对三个数进行由小到大的排序:php&lt;?php function sortNumbers($a, $b, $c) { if ($a &gt; $b) { temp = $a;a = $b;b = $temp;} if ($a &gt; $c) { temp = $a;a = $c;c = $temp;} if ($b &gt;(10, 2, 8);sortedNumbers = sortNumbers(...

php怎么将数字转成字符串?

第一种转换方式: (int) (bool) (float) (string) (array) (object)&lt;php $num1=3.14; $num2=(string)$num1; var_dump($num1); //输出float(3.14) var_dump($num2); //输出string(3.14) ?&gt; 输出:float 3.14string '3.14' (length=4)第二种转换方式: intval() floatval(...

php字符串处理函数(php字符串函数)

call_user_func_array('increment',?array($a));?//?You?can?use?this?instead?before?PHP?5.3 echo?$a."\n";后面可以跟多个参数!php哪个函数能取得字符串长度PHP对中文字符串的处理一直困扰于刚刚接触PHP开发的新手程序员。下面简要的剖析一下PHP对中文字符串长度的处理:PHP自带的函数如strlen...

php将字符串拆分成二维数组

php$str="123 5456 5159 6";function strsToArray($strs,$x) { // 把字符串按指定正则切割为数组$result = array(); $array = array(); //把与正则匹配的字符串替换为 @$strs = preg_replace($x, '@', trim($strs)); /* 这里切割字符串,需要注意的是如果字符串中有@ 可以...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
rom/system/lib/中好多的.so库,每个.so具体是干什么用 有哪位朋友做过纸黄金交易,风险大吗,一般人可以做吗? 纸黄金上哪买好做不! 装饰公司辅料都有哪些 毛水泥地面可以贴地板贴纸吗 证信身份验证码是什么 抗震支架如何套定额 “务蹑霜雪戏”的出处是哪里 ...是个导游带人上泰国旅行。和两个患有精神病的女人的片段。 ...能销户 我能不能直接报停6个月 自动销户 会不会对自己贷款 求推荐一款又大又重的鼠标 请大家帮我推荐一款比较重的鼠标 稍微重一点大一点的鼠标有什么比较好的推荐么? 如何理解集成电路的版图(Layout)? 半加器的版图设计详细流程谁知道?急!!! 阿玛尼粉芯和粉盒有什么区别 集成电路设计提图 哪位英语高手能帮我翻译一段文章啊?谢谢了!!! 如何查询我的中行信用卡的寄送进度? 集成电路版图设计metal1能不能走很宽的线 关于生活中的常用谚语用俄语怎么表达,例如我为人人,人人为我? 如何能查询我的中行信用卡的寄送进度? 俄语有关待客的谚语 征集有关食物的谚语(或名句)~~~ 俄语谚语 集成电路版图设计 有关饮食的谚语 双极型集成电路的版图设计 中外与食物有关的俗语 俄语短文 有关俄罗斯美食! 哪个鼠标比较重一点.. 打csgo有没有推荐的重一点的鼠标手也比较大? 罗技鼠标太轻了,什么鼠标重一些 求推荐雷蛇鼠标中重一点的型号。价格500左右可以接受。 雷蛇鼠标,地狱狂蛇系那个最重? CS鼠标 我的手宽大喜欢重一点的鼠标 请高手推荐一下 求推荐一款一百左右的游戏鼠标,不需要宏,但要重一点的,能调配重就更好了 雅乐思吸油烟机如何自动清洗功能? 装清洗液的壶在什么位置? qq上设置里的隐私设置没有了 手机QQ管家升级后加密视频、加密文件都找不到了,但是手机内存里还是有的,怎么才能找到?打开? 之前手机QQ浏览器私密空间存的图片,换了手机后,怎么没有了,在哪能够找回? 腾讯手机管家私密文件解密了找不到了 qq手机管家3.5.0加密文件箱打不开,卸载以后再装上就找不到原来的加密文件啦 请问不小心卸载了腾讯手机管家重新下载后私密文件全部没有了。怎么找回 玫瑰花茶可以每天喝吗 白羊座的男生和天蝎座女生在一起合适么 凌晨三点左右梦见正在修建的塔倒了人没事? 玫瑰花茶每天喝可以吗 会不会寒凉 梦到地震房屋倒塌,但是自己家的楼房没事。 玫瑰花茶可以天天喝吗?
  • 焦点

最新推荐

猜你喜欢

热门推荐