我有一个问题,有这个功能。
如何解决这个问题?
我的代码:
// Buscar Tema
$guardardato = array();
foreach($html->find('table', 2)->find('tr') as $datossc) {
$title = $datossc->find('td', 1)->plaintext;
if ($title != 'Song Title') {
$guardardato[0] = $title;
$guardardato[0] = preg_replace( "(-)", " - ", $guardardato[0]);
$guardardato[0] = preg_replace( "(:)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "([0-9]+)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "(Current Song)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "(pista)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "(pista)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "(www.[a-z]+.com.ar)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "(www.[a-z]+.com)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "(www.[a-z]+.net)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "([a-z]+.com.ar)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "([a-z]+.com)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "([a-z]+.net)", "", $guardardato[0]);
$guardardato[0] = ucwords(strtolower($guardardato[0]));
function obtener($guardardato) {
foreach ($guardardato as $k => $v){
return $v;
}
}
print obtener($guardardato);
}
}
错误:
致命错误:无法在 C:\ xampp \ htdocs中重新声明obtener()(之前在C:\ xampp \ htdocs ... \ index.php:43中声明)。 。\ index.php 在 43
上
第43行:
function obtener($guardardato) {
我尝试使用this posible solution,但这确实有用。
可以帮帮我吗?
感谢。
答案 0 :(得分:2)
您的函数定义(function obtener($guardardato)
)嵌套在foreach
循环内部,因此每次循环遍历数组中的项时,它将尝试重新定义函数obtener
。< / p>
要解决此问题,只需将您的函数移到foreach
循环之外,如下所示:
function obtener($guardardato) {
foreach ($guardardato as $k => $v){
return $v;
}
}
// Buscar Tema
$guardardato = array();
foreach($html->find('table', 2)->find('tr') as $datossc) {
$title = $datossc->find('td', 1)->plaintext;
if ($title != 'Song Title') {
$guardardato[0] = $title;
$guardardato[0] = preg_replace( "(-)", " - ", $guardardato[0]);
$guardardato[0] = preg_replace( "(:)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "([0-9]+)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "(Current Song)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "(pista)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "(pista)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "(www.[a-z]+.com.ar)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "(www.[a-z]+.com)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "(www.[a-z]+.net)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "([a-z]+.com.ar)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "([a-z]+.com)", "", $guardardato[0]);
$guardardato[0] = preg_replace( "([a-z]+.net)", "", $guardardato[0]);
$guardardato[0] = ucwords(strtolower($guardardato[0]));
print obtener($guardardato);
}
}
答案 1 :(得分:0)
错误消息表明obtener()已经是代码中其他地方定义的函数。如果您将该函数重命名为obtener_tema()并更改其余代码以引用该函数,那是否可以解决您的问题?