CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : Function PHP pour un slug

DébutPage précedente
1
Page suivantePage suivante
PillsDispenser PillsDispenser
MP
Niveau 53
05 janvier 2020 à 13:24:27
// Generate Slug
  public function generateSlug($slug)
  {
    // replace non letter or digits by -
    $slug = preg_replace('~[^\pL\d]+~u', '-', $slug);

    // transliterate
    $slug = iconv('utf-8', 'us-ascii//TRANSLIT', $slug);

    // remove unwanted characters
    $slug = preg_replace('~[^-\w]+~', '', $slug);

    // trim
    $slug = trim($slug, '-');

    // remove duplicate -
    $slug = preg_replace('~-+~', '-', $slug);

    // lowercase
    $slug = strtolower($slug);

    if (empty($slug)) {
      $slug = "n-a";
    }

    $i = 0;
    $slug_save = $slug;
    // Check if slug is used
    while (true) {
      $query = $this->getDb()->prepare('SELECT COUNT(news_slug) FROM news WHERE news_slug=:news_slug');
      $query->bindParam(':news_slug', $slug);
      $query->execute();
      $count = $query->fetch();

      if ((int)$count[0] === 0) {
        break;
      }

      // Increment slug
      $i++;
      $slug = $slug_save."-".$i;
    }

    return $slug;
  }

Bonjour

J'ai un problème des lettres sont supprimés comme le é ou ë du coup j'ai un trou dans mon slug et ca fait vraiment moche.

Xylis2 Xylis2
MP
Niveau 7
05 janvier 2020 à 16:10:17

Utilise slugify

PillsDispenser PillsDispenser
MP
Niveau 53
05 janvier 2020 à 16:11:52

Le 05 janvier 2020 à 16:10:17 Xylis2 a écrit :
Utilise slugify

C'est-à-dire

patchwerk patchwerk
MP
Niveau 17
05 janvier 2020 à 17:26:42

https://github.com/cocur/slugify

PillsDispenser PillsDispenser
MP
Niveau 53
05 janvier 2020 à 19:15:16

j'utilise pas de framework

UndeadMarston6 UndeadMarston6
MP
Niveau 10
05 janvier 2020 à 19:31:11

T'as pas besoin de framework pour utiliser ça

20_cent_2017 20_cent_2017
MP
Niveau 10
05 janvier 2020 à 21:16:04

break et une requête dans une fonction de slug :/

je vais rien dire ce soir XD

PillsDispenser PillsDispenser
MP
Niveau 53
09 janvier 2020 à 01:00:41

Le 05 janvier 2020 à 21:16:04 20_cent_2017 a écrit :
break et une requête dans une fonction de slug :/

je vais rien dire ce soir XD

?

20_cent_2017 20_cent_2017
MP
Niveau 10
09 janvier 2020 à 05:46:11

Ton code c'est de la merde ....

Ta fonction suggère dois faire juste le slug

Ensuite ta des choses à pas faire :

While (true) par exemple.

Voilà. Perso je n'utilise jamais break. Sauf pour un switch.
Donc normalement si tu fais bien les choses ta zéro break.

C'est comme les or die;

[Myster] [Myster]
MP
Niveau 7
10 janvier 2020 à 14:07:30
function slugify($string, $delimiter = '-')
{
    $oldLocale = setlocale(LC_ALL, '0');
    setlocale(LC_ALL, 'en_US.UTF-8');
    $clean = iconv('UTF-8', 'ASCII//TRANSLIT', $string);
    $clean = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $clean);
    $clean = strtolower($clean);
    $clean = preg_replace("/[\/_|+ -]+/", $delimiter, $clean);
    $clean = trim($clean, $delimiter);
    setlocale(LC_ALL, $oldLocale);
    return $clean;
}

Cadeau.

PillsDispenser PillsDispenser
MP
Niveau 53
13 janvier 2020 à 10:13:37

c'est juste l'ajout du setlocal que tu fais ?

-TrAsHeR- -TrAsHeR-
MP
Niveau 3
18 janvier 2020 à 08:51:06

Perso j'utilise https://github.com/cocur/slugify c'est vraiment le meilleur et très modulable.

PillsDispenser PillsDispenser
MP
Niveau 53
09 mai 2020 à 15:32:59

Le 18 janvier 2020 à 08:51:06 -TrAsHeR- a écrit :
Perso j'utilise https://github.com/cocur/slugify c'est vraiment le meilleur et très modulable.

Ouais mais faut installer plein de truc juste pour une fonction

Nuagedecube Nuagedecube
MP
Niveau 21
09 mai 2020 à 16:11:34

Le 05 janvier 2020 à 13:24:27 PillsDispenser a écrit :

J'ai un problème des lettres sont supprimés comme le é ou ë du coup j'ai un trou dans mon slug et ca fait vraiment moche.

La function remplace les accents, je pense que le problème peut venir de la bdd, un caractère illégal dans le champ qui ne peut être traité ou la page mal encodé.

PillsDispenser PillsDispenser
MP
Niveau 53
09 mai 2020 à 17:14:41

Le 10 janvier 2020 à 14:07:30 [Myster] a écrit :
function slugify($string, $delimiter = '-') { $oldLocale = setlocale(LC_ALL, '0'); setlocale(LC_ALL, 'en_US.UTF-8'); $clean = iconv('UTF-8', 'ASCII//TRANSLIT', $string); $clean = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $clean); $clean = strtolower($clean); $clean = preg_replace("/[\/_|+ -]+/", $delimiter, $clean); $clean = trim($clean, $delimiter); setlocale(LC_ALL, $oldLocale); return $clean; }

Cadeau.

Cette fonction fonction comme je veux a priori les lettres sont pas supprimés

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : Thymotep
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment