我尝试按功能更改字符
<?php
$string = "Hi everybody people [gal~images/articles~100~100~4] here other imagen [gal~images/products~100~100~3]";
$regex = "/\[(.*?)\]/";
preg_match_all($regex, $string, $matches);
for($i=0; $i<count($matches[1]);$i++)
{
$match = $matches[1][$i];
$array = explode('~', $match);
//$newValuet="gal("".$array[1]."","".$array[2]."","".$array[3]."","".$array[4]."")";
$newValue="gal(".$array[1].",".$array[2].",".$array[3].",".$array[4].")";
$string = str_replace($matches[0][$i],$newValue,$string);
}
echo $string;
?>
这里的问题:
$newValue="gal(".$array[1].",".$array[2].",".$array[3].",".$array[4].")";
$string = str_replace($matches[0][$i],$newValue,$string);
功能没有给出正确的结果我尝试不同的方法,但继续问题,请我看到所有功能,但没有得到这个工作,如果你能回答请给我一些修改这个代码,我可以理解,谢谢很多全部帮助
更多信息
该脚本生成新值,此值必须发送胆量函数用于插入和显示替换标签并放好,显示文本和标签替换
$newValue="gal(".$array[1].",".$array[2].",".$array[3].",".$array[4].")";
$string = str_replace($matches[0][$i],$newValue,$string);
这里函数显示gal,函数执行时必须执行到str_replace中才能放入文本,在替换标记之前继续,只有这个失败
PD:我尊重一些人,我来这里是为了发送我的问题,但在许多情况下写得很糟糕,但英语对我来说不是原生的,对于所有人来说,在许多情况下肯定会让人们尊重,如果说得不好,全部这里的人需要学习或需要帮助,明天我可以帮助其他人或这个人,没有更多的报酬,谢谢问候
答案 0 :(得分:0)
图库的功能
<?php
function gal($dire,$w_size,$h_size,$cols)
{
$n_images=0;
$dir=opendir("$dire");
while($file=readdir($dir))
{
if ($file!="." && $file!=".." && $file!="Thumbs.db" && $file!="index.html" && $file!=".htaccess" && $file!="config.dat")
{
$n_images++;
$imagenes[]=$file;
}
}
closedir($dir);
$num_img="".$n_images."";
$num_img_cols="".$cols."";
$num_filas="".ceil($num_img/$num_img_cols)."";
echo '<table width="10%" border="0" cellpadding="3" cellspacing="2" align="center">
<tr>
<td colspan="'.$num_img_cols.'"> </td>
</tr><tr>';
$x=1;
for ($j=0;$j<$n_images;$j++)
{
print "<td align='center'>";
//echo '<img src="'.$dire.'/'.$imagenes[$j].'" width="'.$w_size.'" height="'.$h_size.'">';
print "<a href='".$dire."/".$imagenes[$j]."' class='highslide' onclick=\"return hs.expand(this,{slideshowGroup:'group1',align:'center'})\">";
print '<img src="indexer_resizer.php?ruta_f='.$dire.'/&image='.$imagenes[$j].'&new_width='.$w_size.'&new_height='.$h_size.'" border="0" alt="Pulse para Ampliar" title="Pulse para Ampliar">
</a>';
if ($x%$num_img_cols==0)
{
print "</tr>";
}
$x++;
}
echo "</table>";
}
?>
**Function for replace tags**
<?php
$string = "Hola todos os presento una nueva galeria [galt~imagenes/articulos~100~100~4] Aqui otra más [gal~imagenes/productos~100~100~3]";
$regex = "/\[(.*?)\]/";
preg_match_all($regex, $string, $matches);
for($i=0; $i<count($matches[1]);$i++)
{
$match = $matches[1][$i];
$array = explode('~', $match);
//$newValuet="gal("".$array[1]."","".$array[2]."","".$array[3]."","".$array[4]."")";
$newValue="gal(".$array[1].",".$array[2].",".$array[3].",".$array[4].")";
$string = str_replace($matches[0][$i],$newValue,$string);
}
echo $string;
?>
这是所有功能,你可以看到这里,脚本使用2个功能查看图库和脚本替换和显示图库,但没有正常工作
该脚本生成新值,此值必须发送胆量函数用于插入和显示替换标签并放好,显示文本和标签替换
$newValue="gal(".$array[1].",".$array[2].",".$array[3].",".$array[4].")";
$string = str_replace($matches[0][$i],$newValue,$string);
这里函数显示gal,函数执行时必须执行到str_replace中才能放入文本,在替换标记之前继续,只有这个失败
PD:我尊重一些人,我来这里是为了发送我的问题,但在许多情况下写得很糟糕,但英语对我来说不是原生的,对于所有人来说,在许多情况下肯定会让人们尊重,如果说得不好,全部这里的人需要学习或需要帮助,明天我可以帮助其他人或这个人,没有更多的报酬,谢谢问候
答案 1 :(得分:0)
要捕获字符串的那些部分,请尝试:
$string = "Hi everybody people [gal~images/articles~100~100~4] here other imagen [gal~images/products~100~100~3]";
preg_match_all('/\[(.+)\]/ismU, $string, $matches);
或
preg_match_all('/\[(\w+)\~([a-z0-9\/]+)\~(\d+)\~(\d+)\~(\d+)\]/ismU, $string, $matches);
最后一个导致$matches
结构稍微复杂一点,但证明你可以准确地捕捉到你需要的数据。