文字列を取り、英数字以外のすべての文字を取り除き、すべてのスペースをダッシュに変換したいと考えています。文字列を英数字に変換し、スペースをダッシュに変換するにはどうすればよいですか?
4
A
答えて
10
見出しやその他の文字列をURLスラッグに変換する場合は、次のコードを使用します。 RegExを使用して文字列を英数字とハイフンに変換することで、あなたが求めるすべてのことを行います。
function generateSlugFrom($string)
{
// Put any language specific filters here,
// like, for example, turning the Swedish letter "å" into "a"
// Remove any character that is not alphanumeric, white-space, or a hyphen
$string = preg_replace('/[^a-z0-9\s\-]/i', '', $string);
// Replace all spaces with hyphens
$string = preg_replace('/\s/', '-', $string);
// Replace multiple hyphens with a single hyphen
$string = preg_replace('/\-\-+/', '-', $string);
// Remove leading and trailing hyphens, and then lowercase the URL
$string = strtolower(trim($string, '-'));
return $string;
}
あなたはURLスラグを生成するためのコードを使用しようとしている場合は、80文字かそこら後にそれをカットするために少し余分なコードを追加することを検討することをお勧めします。
if (strlen($string) > 80) {
$string = substr($string, 0, 80);
/**
* If there is a hyphen reasonably close to the end of the slug,
* cut the string right before the hyphen.
*/
if (strpos(substr($string, -20), '-') !== false) {
$string = substr($string, 0, strrpos($string, '-'));
}
}
+0
コードを共有していただきありがとうございます。かなり正確に私が探していたもの。 – Decoy
11
ああ、ブログの投稿(URL用)にこれを使用しました。
コード:
$string = preg_replace("/[^0-9a-zA-Z ]/m", "", $string);
$string = preg_replace("/ /", "-", $string);
$string
を濾過したテキストが含まれています。あなたはそれをエコーしたり、それを使って何でもしたりすることができます。
0
$string = preg_replace(array('/[^[:alnum:]]/', '/(\s+|\-{2,})/'), array('', '-'), $string);
関連する問題
- 1. C#で文字列をPascalCase文字列に変換するにはどうすればよいですか?
- 2. C++/Arduino:文字列/文字配列をバイトに変換するにはどうすればよいですか?
- 3. PHP文字列値をアンドロイド文字列値に変換するにはどうすればよいですか?
- 4. 文字エスケープシーケンスを含む文字列をcharに変換するにはどうすればよいですか?
- 5. 1つの文字を文字列に変換するにはどうすればよいですか?
- 6. UTF-8文字列を大文字に変換するにはどうすればよいですか?
- 7. 文字列を小文字に変換するにはどうすればよいですか?
- 8. 文字列をユニコード文字に変換するにはどうすればよいですか?
- 9. 文字のLazySeqをClojureの文字列に変換するにはどうすればよいですか?
- 10. 文字列の文字をリストに変換するにはどうすればよいですか?
- 11. 英数字を変換して計算に使用するにはどうすればよいですか?
- 12. 文字列のトルコ語の文字を英語の文字に変換するにはどうすればよいですか?
- 13. 文字を数字に変換するにはどうすればよいですか?
- 14. ラムダの文字列を10進数に変換するにはどうすればよいですか?
- 15. 文字の配列を整数に変換するにはどうすればよいですか?
- 16. 文字列のリストを数値に変換するにはどうすればよいですか?
- 17. JSON文字列をJavaScriptの関数に変換するにはどうすればよいですか?
- 18. 文字列の16進値を数値に変換するにはどうすればよいですか?
- 19. 文字列に英数字とダッシュだけが含まれているかどうかを確認するにはどうすればよいですか?
- 20. C#で文字列を文例に変換するにはどうすればよいですか?
- 21. C#で文字列をバイト配列に変換するにはどうすればよいですか?
- 22. 数字を文字に変換する
- 23. Eと数字を含む変換文字列を数字に置き換えないようにする
- 24. Bash文字列を英数字で、アンダースコアなしにするにはどうすればよいですか?
- 25. ANSI文字(char)からUnicode文字(wchar_t)に変換するにはどうすればよいですか?
- 26. IQueryable <string>を文字列配列に変換するにはどうすればよいですか?
- 27. バイト配列を文字列に変換するにはどうすればよいですか?
- 28. UTF-8文字列をDartのバイト配列に変換するにはどうすればよいですか?
- 29. クラスをXMLに変換して文字列に変換する
- 30. PostgreSQL(9.1)関数内で文字を整数に変換するにはどうすればよいですか?
の可能性が重複する[php /正規表現: "linkify" ブログのタイトル](http://stackoverflow.com/questions/3244651/php-regex-linkify-blog-titles)の – mario
可能な複製[php/regex:ブログタイトルをリンクする](https://stackoverflow.com/questions/3244651/php-regex-linkify-blog-titles) – primpap