gpt4 book ai didi

php - 正则表达式在在线测试器中运行良好,但在我的页面上不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 13:12:31 24 4
gpt4 key购买 nike

所以我正在读取一个 css 文件,我想从中获取一些数据。我目前将数据纯粹缩减为:

font-family: "Verdana";
font-size: 14px;
color: #000000;

为了纯粹获取我需要的数据(即 Verdana、14 和 #000000),我创建了以下 PHP 代码:

foreach($tmp as $tmpstr){
if(strpos($tmpstr, "font-family")){
$tmpres = array();
preg_match('/\"(.*?)\"/', $tmpstr, $tmpres);
$returnData["website"]["font-family"] = $tmpres[1];
} else if(strpos($tmpstr, "font-size")){
$tmpres2 = array();
preg_match_all('/\:\s(.*?)px\;/', $tmpstr, $tmpres2);
$returnData["website"]["font-size"] = $tmpres2[1];
} else if(strpos($tmpstr, "color")){
$tmpres3 = array();
preg_match_all('/color\:\s(.*?)\;/', $tmpstr, $tmpres3);
$returnData["website"]["font-color"] = $tmpres3[1];
}
}

我知道它尚未优化,但原因是它无法正常工作。获得 Verdana 的第一个表达式 '/\"(.*?)\"/' 工作正常,但其他两个 ('/\:\s(.*?)px\;/' 获取字体大小,/color\:\s(.*?)\;/ 获取字体颜色)不要,而在线测试它们测试仪似乎确实有效。谁能告诉我我做错了什么?

谢谢!

最佳答案

检查这个例子

$tmp = array(
'font-family: "Verdana";',
'font-size: 14px;',
'color: #000000;'
);

foreach($tmp as $tmpstr)
{
if (false !== strpos($tmpstr, "font-family"))
{
preg_match('/:[ ]*"(.*)"/', $tmpstr, $tmpres);
echo $tmpres[1];
}
else if (false !== strpos($tmpstr, "font-size"))
{
preg_match('/:[ ]*(\d*)px/', $tmpstr, $tmpres2);
echo $tmpres2[1];
}
else if (false !== strpos($tmpstr, "color"))
{
preg_match('/:[ ]*(.*);/', $tmpstr, $tmpres3);
echo $tmpres3[1];
}

echo '<br />';
}

结果:

Verdana
14
#000000

希望这个解决方案对您有所帮助!

关于php - 正则表达式在在线测试器中运行良好,但在我的页面上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24600088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com