Php 用数字和文本替换数组
我的代码很简单,但我不知道问题出在哪里 我正在做一个“for”来得到一个从1到2000的数字,然后将这个数字替换成文本,例如“1px”,“2px” 然后我在数组中设置这个“'1px','2px',…”。 由于这个原因,我可以验证文本中哪里有“px”,然后我可以用“%”重新拼写它。PS:“%”也是一个数组 要替换文本,我使用str_replace,并且它是函数式的,但在代码中使用它时不会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'
$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