加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

创建独特的页面标题slugs php

发布时间:2020-12-13 13:22:44 所属栏目:PHP教程 来源:网络整理
导读:我有一个功能,为页面标题创建独特的slug.它会检查页面表中的slug是否可用,然后通过相应地添加’-int’来创建一个独特的slug.该函数对前三个条目工作正常,例如,三次输入的’test slug’将创建’test-slug-1′,’test-slug-2’和’test-slug-3′.然后,我得到第
我有一个功能,为页面标题创建独特的slug.它会检查页面表中的slug是否可用,然后通过相应地添加’-int’来创建一个独特的slug.该函数对前三个条目工作正常,例如,三次输入的’test slug’将创建’test-slug-1′,’test-slug-2’和’test-slug-3′.然后,我得到第四个条目的错误“致命错误:超过30秒的最大执行时间”.逻辑应该有一些问题,任何人都可以帮我找到它.Below是代码:
function createSlug($title,$table_name,$field_name) {

global $db_connect;

$slug = preg_replace("/-$/","",preg_replace('/[^a-z0-9]+/i',"-",strtolower($title)));

$counter = 1;

do{

  $query = "SELECT * FROM $table_name WHERE  $field_name  = '".$slug."'";
  $result = mysqli_query($db_connect,$query) or die(mysqli_error($db_connect));


  if(mysqli_num_rows($result) > 0){
      $count = strrchr($slug,"-"); 
      $count = str_replace("-",$count);
      if($count > 0){

          $length = count($count) + 1;
          $newSlug = str_replace(strrchr($slug,"-"),'',$slug);
          $slug = $newSlug.'-'.$length;

          $count++;

      }else{
          $slug = $slug.'-'.$counter;
      }  

  }

  $counter++; 
  $row = mysqli_fetch_assoc($result);

}while(mysqli_num_rows($result) > 0);

return $slug;

}

只需使用一个查询即可为您完成所有繁重的工作……
$slug = preg_replace("/-$/",strtolower($title)));

$query = "SELECT COUNT(*) AS NumHits FROM $table_name WHERE  $field_name  LIKE '$slug%'";
$result = mysqli_query($db_connect,$query) or die(mysqli_error($db_connect));
$row = $result->fetch_assoc();
$numHits = $row['NumHits'];

return ($numHits > 0) ? ($slug . '-' . $numHits) : $slug;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读