Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.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_Arrays_Str Replace - Fatal编程技术网

Php 用数字和文本替换数组

Php 用数字和文本替换数组,php,arrays,str-replace,Php,Arrays,Str Replace,我的代码很简单,但我不知道问题出在哪里 我正在做一个“for”来得到一个从1到2000的数字,然后将这个数字替换成文本,例如“1px”,“2px” 然后我在数组中设置这个“'1px','2px',…”。 由于这个原因,我可以验证文本中哪里有“px”,然后我可以用“%”重新拼写它。PS:“%”也是一个数组 要替换文本,我使用str_replace,并且它是函数式的,但在代码中使用它时不会 $search = array('150px','151px','152px','153px','154px'

我的代码很简单,但我不知道问题出在哪里

我正在做一个“for”来得到一个从1到2000的数字,然后将这个数字替换成文本,例如“1px”,“2px”

然后我在数组中设置这个“'1px','2px',…”。 由于这个原因,我可以验证文本中哪里有“px”,然后我可以用“%”重新拼写它。PS:“%”也是一个数组

要替换文本,我使用str_replace,并且它是函数式的,但在代码中使用它时不会

$search = array('150px','151px','152px','153px','154px',...);
$replace = array('100%');
$testes = str_replace($search, $replace, $GetText)

$GetText的示例-

这个代码有效

现在我尝试的代码

for($i = 1; $i<=2000; $i++) {
  echo "'". $i . 'px' . "'," ;
  $test = "'". $i . 'px' . "'," ;
}  
在这个过程中,它不会将“px”替换为“%”

如您所见,str_replace接受数组“此函数返回一个字符串或一个数组,其中subject中所有出现的搜索都替换为给定的替换值。”,但我认为您可以使用

$search=[];//定义搜索数组
$GetText='

'//虚拟文本 对于($i=1;$i,您可以看到str_replace接受数组“此函数返回一个字符串或一个数组,其中subject中所有出现的搜索都替换为给定的替换值。”,但我认为您可以使用

$search=[];//定义搜索数组
$GetText='

';//伪文本
对于($i=1;$i如果您希望从这个循环中得到一个数组,那么构建一个数组而不是一个字符串

顺便说一句,每次循环执行
$test=“”“$i.”px“,”;
将覆盖
$test
变量,这意味着您将在该字符串中得到一个值,即
$test='2000px'

for($i = 1; $i<=2000; $i++) {
    echo "'". $i . 'px' . "'," ;
    //$test = "'". $i . 'px' . "'," ;
    $test[] = "{$i}px";
}

for($i=1;$i如果您希望从这个循环中得到一个数组,那么构建一个数组而不是一个字符串

顺便说一句,每次循环执行
$test=“”“$i.”px“,”;
将覆盖
$test
变量,这意味着您将在该字符串中得到一个值,即
$test='2000px'

for($i = 1; $i<=2000; $i++) {
    echo "'". $i . 'px' . "'," ;
    //$test = "'". $i . 'px' . "'," ;
    $test[] = "{$i}px";
}

for($i=1;$i您需要一个数组,但在此处处理字符串:

$test = "'".$i.'px'."',";
此代码始终重写
$test
字符串,因此
$test
始终等于
'2000px',

但您需要像这样填充数组:

$test[] =  $i.'px';
$GetText = '<p><img src="data:image/png;base64,iVBOC" data-filename="andy-brown_4.png" style="width: 150px;"><br></p>';

$search = array();

for($i = 2000; $i>=1; $i--) {
    $search[] = $i . 'px';
}

$replace = '100%';

$result = str_replace($search, $replace, $GetText);

var_dump($result);
请注意,这里不需要引号,因为str_replace将在文本中查找引号(我相信在大多数情况下它不会找到引号)

接下来需要从2000到1,从大到小,因为
str_replace
将替换第一次发现的事件

如果您有
210px
,str_replace将找到
10px
,并将其替换为
100%
,您就得到了
2100%

因此,工作代码可能如下所示:

$test[] =  $i.'px';
$GetText = '<p><img src="data:image/png;base64,iVBOC" data-filename="andy-brown_4.png" style="width: 150px;"><br></p>';

$search = array();

for($i = 2000; $i>=1; $i--) {
    $search[] = $i . 'px';
}

$replace = '100%';

$result = str_replace($search, $replace, $GetText);

var_dump($result);
$GetText='

'; $search=array(); 对于($i=2000;$i>=1;$i--){ $search[]=$i.'px'; } $replace='100%'; $result=str_replace($search,$replace,$GetText); var_dump($结果);

希望这就是您想要的。

您想要一个数组,但在这里处理一个字符串:

$test = "'".$i.'px'."',";
此代码始终重写
$test
字符串,因此
$test
始终等于
'2000px',

但您需要像这样填充数组:

$test[] =  $i.'px';
$GetText = '<p><img src="data:image/png;base64,iVBOC" data-filename="andy-brown_4.png" style="width: 150px;"><br></p>';

$search = array();

for($i = 2000; $i>=1; $i--) {
    $search[] = $i . 'px';
}

$replace = '100%';

$result = str_replace($search, $replace, $GetText);

var_dump($result);
请注意,这里不需要引号,因为str_replace将在文本中查找引号(我相信在大多数情况下它不会找到引号)

接下来需要从2000到1,从大到小,因为
str_replace
将替换第一次发现的事件

如果您有
210px
,str_replace将找到
10px
,并将其替换为
100%
,您就得到了
2100%

因此,工作代码可能如下所示:

$test[] =  $i.'px';
$GetText = '<p><img src="data:image/png;base64,iVBOC" data-filename="andy-brown_4.png" style="width: 150px;"><br></p>';

$search = array();

for($i = 2000; $i>=1; $i--) {
    $search[] = $i . 'px';
}

$replace = '100%';

$result = str_replace($search, $replace, $GetText);

var_dump($result);
$GetText='

'; $search=array(); 对于($i=2000;$i>=1;$i--){ $search[]=$i.'px'; } $replace='100%'; $result=str_replace($search,$replace,$GetText); var_dump($结果);

希望这就是你想要的。

你可以用stru\ireplace轻松完成

search = array($test);
$replace = array('100%');
$testes = str_ireplace($search, $replace, $GetText);


您可以轻松地使用str_ireplace

search = array($test);
$replace = array('100%');
$testes = str_ireplace($search, $replace, $GetText);


您可以使用一个php函数
preg\u replace

$GetText = '<p><img src="data:image/png;base64,iVBOC" data-filename="andy-brown_4.png" style="width: 150px;"><br></p>';

$result = preg_replace("/\d{1,4}px/","100%",$GetText);

var_dump($result);
$GetText='

'; $result=preg_replace(“/\d{1,4}px/”,“100%”,$GetText); var_dump($结果);
\d{1,4}px
的意思是:
\d
-搜索数字,
{1,4}
-前一个元素(如数字)必须重复1到4次,
px
-必须跟随此文本


因此,它会查找类似于
*px
的所有内容,并将其替换为
100%
,其中
*
是从
0
9999
的任意数字;

您可以使用一个php函数
preg\u replace

$GetText = '<p><img src="data:image/png;base64,iVBOC" data-filename="andy-brown_4.png" style="width: 150px;"><br></p>';

$result = preg_replace("/\d{1,4}px/","100%",$GetText);

var_dump($result);
$GetText='

'; $result=preg_replace(“/\d{1,4}px/”,“100%”,$GetText); var_dump($结果);
\d{1,4}px
的意思是:
\d
-搜索数字,
{1,4}
-前一个元素(如数字)必须重复1到4次,
px
-必须跟随此文本


因此,它会查找类似于
*px
的所有内容,并将其替换为
100%
,其中
*
是从
0
9999
的任意数字;

您缺少了逗号
数组('100%);
@treyBake缺少一个引号:)将代码作为代码发布,而不是作为图像所以
回显“$i.'px.”
可能是
echo“$ipx”;
@MichaelLuis-不会,因为您在每次迭代中都会覆盖变量的值。您缺少逗号
数组('100%);
@treyBake它缺少一个引号:)将代码作为代码发布,而不是作为图像发布。因此
echo“$i.px.”,;
可能是
echo“$ipx”
@MichaelLuis-不会,因为每次迭代时都会覆盖变量的值。@RiggsFolly这是带有str_replace的mistery尝试此str_replace([50px”,“150px”],“100%”,$GetText);它将返回“width:1 100%”。。。etc@Ri