Rails和Django等Web框架内置了对“slugs”的支持,这些“slugs”用于生成可读且对SEO友好的URL:SlugsinRailsSlugsinDjango一个slug字符串通常只包含字符a-z、0-9和-,因此可以在没有URL转义的情况下编写(想想“foo%20bar”)。我正在寻找一个Javaslug函数,它给定任何有效的Unicode字符串将返回一个slug表示(a-z、0-9和-)。一个微不足道的slug函数应该是这样的:returninput.toLowerCase().replaceAll("[^a-z0-9-]","");但是,此实现不会处理国际化和重音符号
我正在使用CakePHP1.3。我有一个产品模型。在DB表中有id和slug字段。如果我的产品是id:37和slug:My-Product-Title我希望产品的URL是:products/37/My-Product-Title代替标准:products/view/37我创建了一条如下所示的路线:Router::connect('/products/:id/:slug',array('controller'=>'products','action'=>'view'),array('pass'=>array('id'),'id'=>'[0-9]+'));现在我可以转到http://ser
将文本字符串转换为slug的最佳方法是什么?含义:允许字母,转换为小写允许数字应消除空格,而不是将其转换为破折号(“-”)用等效的标准字母替换重音字符不允许有其他字符,应该去掉我在网上找到了很多代码,但它们都倾向于将空格转换为破折号,我不想这样做。我也有兴趣选择改变转换,其中:&符号(“&”)应替换为字符串“and”还有一个变体,其中:不要费心将重音字符转换为等效的标准字母 最佳答案 这是我最初在这里找到的修改函数(http://cubiq.org/the-perfect-php-clean-url-generator)。您可以传递
假设我有一个名为的Controller页面还有一个方法slug_on_the_fly公共(public)函数slug_on_the_fly($slug)我的路线是什么样子的?例如对于博客Controller,这很容易:$route['blog/(:any)']='pages/slug_on_the_fly/$1';然后http://localhost/blog/name-of-the-article效果不错但是,如果我想像没有blog那样做,例如http://localhost/name-of-the-article或http://localhost/another-article-b
Yii-绝地武士!我正在处理一些旧的Yii项目,必须向它们添加一些功能。Yii是一个非常合乎逻辑的框架,但它有一些我无法理解的东西。可能我还没有了解Yii-way。因此,我将逐步描述我的问题。对于不耐烦的人-最后简短提问。简介:我想将人类可读的URL添加到我的项目中。现在URL看起来像:www.site.com/article/359我希望它们看起来像这样:www.site.com/article/how-to-make-pretty-urls非常重要:旧文章必须在旧格式URL上可用,而新文章必须在新URL上可用。第1步:首先,我更新了config/main.php中的重写规则:'/'
我放置的函数很少,但无法按我的意愿运行。slug是根据帖子标题自动动态创建的。Example:Ifaposttitleis"test"thentheslugwillbe"test"我的问题是,如果他们重复输入帖子标题“test”,这意味着slug也会重复。出于这个原因,我创建了2个函数来为我处理这个问题。此函数检查数据库中是否存在slugfunctionslug_exist($x){global$db;$sql="SELECTpost_nameFROMpostsWHEREpost_name=\"$x\"";$query=$db->select($sql);if($db->num_row
我在一个laravel项目中工作。我有sluggedurl。它适用于英语。但是当我使用Bangla时它返回空。请帮助我解决问题。echostr_slug("hithere");//Result:hi-thereechostr_slug("বাংলাদেশব্যাংকেররিজার্ভেরঅর্থচুরিরঘটনায়ফিলিপাইনের");//Result:''(Empty) 最佳答案 str_slug或外观版本Str::slug不适用于非ascii字符串。您可以改用这种方法functionmake_slug($string){re
我让用户在我的网站上创建他们自己的个人资料,这样他们就可以选择他们的url。因此,例如,如果他们的名字是JohnSmith,他们可能想输入john-smith,然后他们的个人资料URL将是www.mysite.com/john-smith。我需要使用preg_match来验证他们输入的是一个有效的URLslug。所以这里是它必须满足的规则才有效:它必须至少包含一个字母,并且只能包含字母、数字和连字符谁能帮帮我,我擅长PHP,但对正则表达式很垃圾! 最佳答案 我希望这段代码是不言自明的:但如果不是,函数test_username()将
我正在用php开发一个网站,这是我第一个使用php的网站,我是php的新手。该站点包含2个页面,index.php和info.phpindex.php具有以下形式,ClicktoProceed!当用户输入并提交详细信息时。它重定向到下一页并且url包含查询字符串,例如,http://localhost/info?username=john&company=zend&email=beast@example.com我想像这样显示上面的url,http://localhost/info/john/zend/beast@example.com并使用$_GET['username']、$_GET
我有2个自定义帖子类型的帖子。视频帖子和城市指南帖子第一个帖子(视频帖子)包含url:104.130.239.132/rick-owens/第二个帖子(城市指南)conatinsurl:http://104.130.239.132/city-guide/rick-owens/(城市指南是永久链接结构,是自定义帖子类型的名称)。因此,每当我们尝试访问第一个url时,问题就会出现在这里,它会显示第二个url的模板和内容。第二个url是最新发布的。我尝试通过禁用YoastSeo插件来解决,但仍然没有任何变化,并且还完成了我的永久链接刷新后仍然得到相同的结果。附上第一个url帖子的YoastS