par
retrojex » 19 mars 2015, 16:32
Tout d'abord merci pour vos réponses, mais je pense plus que ma configuration est celle que ynx expose:
Je vous mets mon code:
Code : Tout sélectionner
$reg = "/[a-zA-Z]{3}\/[0-3][0-9]\/[0-9]{4}\s\-\s[0-2][0-9]:[0-5][0-9]\s(am|pm)/"; // Expression régulière de type date + heure Mois(3 lettres)/dd/aaaa - hh:mm (am|pm)
$try = preg_match($reg, $article['title']);
if ($try != 1) // Test si le titre n'est pas une date
{
$rezer = substr($article['title'], 2);
$text = preg_replace('#\(\s*[a-z0-9]*\s*\)*\s*#i', '', $rezer); // Enlèce les parenthèses ()
$text2 = preg_replace('#\[\s*[a-z0-9]*\s*\]*\s*#i', '', $text); // Enlève les crochets []
$text3 = preg_replace('#\{\s*[a-z0-9]*\s*\}*\s*#i', '', $text2); // Enlève les accolades {}
$req = 'SELECT Name FROM *** WHERE Name="'. $text3 .'"'; // Sélectionne le nom dans la DB où la colonne Name = $text3
$rs_queri = mysqli_query($acdb,$req); // Teste la requête
$rs = mysqli_num_rows($rs_queri);
if($rs >= 1) // Test si la Série est dans la BD
{
$reze = substr($article['title'], 2); // Enlève les 2 premiers caractères
$tor= "<li><p class='show_reg'>$reze</p></li>\n";
$page .= $tor;
}
if($rs === 0)
{
$reqr = 'SELECT Name2 FROM **** WHERE Name2= "'.$text3.'" '; // Sélectionne le nom dans la DB où la colonne Name = $te
$rs_query = mysqli_query($acdb,$reqr); // Teste la requête
$rst = mysqli_num_rows($rs_query); // Nombre de fois que la requête existe.
if($rst >= 1)
{
$reze = substr($article['title'], 2); // Enlève les 2 premiers caractères
$tor = "<li><p class='show_verif'>$reze</p></li>\n";
$page .= $tor;
}
else
{
$tor = '';
$page .= $tor;
}
}
}
else
{
$tr = substr($article['title'], -8); // Garde les 8 derniers caractères de la chaine
if($tr != "08:00 pm") // Test si les 8 derniers caractères sont différents à "08:00 pm"
{
$tar="";
$page .= $tar; // Ne marque rien si le test est valide
}
else // Sinon il écrit la date
{
$title = substr($article['title'], 0, -11);
$ex = explode("/", $title);
$day = intval($ex[1]);
$month = $ex[0];
$year = intval($ex[2]);
$date2 = array(++$day, $month, $year);
$date3=implode("/", $date2);
$tar = "<center><span class='date'>$date3</span></center>\n";
$page .= $tar;
}
}
En faite, c'est un lecteur RSS qui affiche un calendrier de série, sauf que la variable $article['title'] revoie dès fois une date et dès fois le nom de la série. Donc mes deux grandes parties IF / ELSE testent si la variable est de type date ou de type nom de série.
Ce que je voudrais c'est que la date s'affiche uniquement s'il y a un ou des titres de séries à afficher en dessous, vous voyez ?
Je suis désolé le code est un peu long et pas vraiment bien indenté. Mais il vérifie aussi que le nom des séries soient dans la BD, etc.
Merci d'avance pour les futures renseignements.
Tout d'abord merci pour vos réponses, mais je pense plus que ma configuration est celle que ynx expose:
Je vous mets mon code:
[code]
$reg = "/[a-zA-Z]{3}\/[0-3][0-9]\/[0-9]{4}\s\-\s[0-2][0-9]:[0-5][0-9]\s(am|pm)/"; // Expression régulière de type date + heure Mois(3 lettres)/dd/aaaa - hh:mm (am|pm)
$try = preg_match($reg, $article['title']);
if ($try != 1) // Test si le titre n'est pas une date
{
$rezer = substr($article['title'], 2);
$text = preg_replace('#\(\s*[a-z0-9]*\s*\)*\s*#i', '', $rezer); // Enlèce les parenthèses ()
$text2 = preg_replace('#\[\s*[a-z0-9]*\s*\]*\s*#i', '', $text); // Enlève les crochets []
$text3 = preg_replace('#\{\s*[a-z0-9]*\s*\}*\s*#i', '', $text2); // Enlève les accolades {}
$req = 'SELECT Name FROM *** WHERE Name="'. $text3 .'"'; // Sélectionne le nom dans la DB où la colonne Name = $text3
$rs_queri = mysqli_query($acdb,$req); // Teste la requête
$rs = mysqli_num_rows($rs_queri);
if($rs >= 1) // Test si la Série est dans la BD
{
$reze = substr($article['title'], 2); // Enlève les 2 premiers caractères
$tor= "<li><p class='show_reg'>$reze</p></li>\n";
$page .= $tor;
}
if($rs === 0)
{
$reqr = 'SELECT Name2 FROM **** WHERE Name2= "'.$text3.'" '; // Sélectionne le nom dans la DB où la colonne Name = $te
$rs_query = mysqli_query($acdb,$reqr); // Teste la requête
$rst = mysqli_num_rows($rs_query); // Nombre de fois que la requête existe.
if($rst >= 1)
{
$reze = substr($article['title'], 2); // Enlève les 2 premiers caractères
$tor = "<li><p class='show_verif'>$reze</p></li>\n";
$page .= $tor;
}
else
{
$tor = '';
$page .= $tor;
}
}
}
else
{
$tr = substr($article['title'], -8); // Garde les 8 derniers caractères de la chaine
if($tr != "08:00 pm") // Test si les 8 derniers caractères sont différents à "08:00 pm"
{
$tar="";
$page .= $tar; // Ne marque rien si le test est valide
}
else // Sinon il écrit la date
{
$title = substr($article['title'], 0, -11);
$ex = explode("/", $title);
$day = intval($ex[1]);
$month = $ex[0];
$year = intval($ex[2]);
$date2 = array(++$day, $month, $year);
$date3=implode("/", $date2);
$tar = "<center><span class='date'>$date3</span></center>\n";
$page .= $tar;
}
}[/code]
En faite, c'est un lecteur RSS qui affiche un calendrier de série, sauf que la variable $article['title'] revoie dès fois une date et dès fois le nom de la série. Donc mes deux grandes parties IF / ELSE testent si la variable est de type date ou de type nom de série.
Ce que je voudrais c'est que la date s'affiche uniquement s'il y a un ou des titres de séries à afficher en dessous, vous voyez ?
Je suis désolé le code est un peu long et pas vraiment bien indenté. Mais il vérifie aussi que le nom des séries soient dans la BD, etc.
Merci d'avance pour les futures renseignements.