Undskyld den sene tilbagemelding...
Jeg har kigget lidt på det og har lavet en lille "alpha kode"
<?php
// Bearbejd specielle tegn
function CleanFileName( $Raw ){
$Raw = trim($Raw);
$RemoveChars = array( "([\40])" , "([^a-zæøåÅÀàÁáÂâÃãÄäĀāĂ㥹ǺǻǼǽĆćÇçČčĈĉĊċĎďĐđÐðÈèÉéĚěÊêËëĒēĔĕĘęĖėƒflĢģĜĝĞğĠġÌìÍíÎîĨĩÏïĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňÑñʼnŊŋÒòÓóÔôÕõÖöŌōŎŏŐőǾǿŒœŔŕŖŗŘřŚśŞşŠšŜŝſßŢţŤťŦŧÞþÙùÚúÛûŨũÜüŮůŪūŬŭŲųŰűẀẁẂẃŴŵẄẅỲỳÝýŶŷŸÿŹźŽžŻżA-ZÆØÅ0-9-])", "(-{2,})", "/æ|Æ/", "/ø|Ø/", "/å|Å/", "/À|à|Á|á|Â|â|Ã|ã|Ä|ä|Ā|ā|Ă|ă|Ą|ą|Ǻ|ǻ|Ǽ|ǽ/", "/Ć|ć|Ç|ç|Č|č|Ĉ|ĉ|Ċ|ċ/", "/Ď|ď|Đ|đ|Ð|ð/", "/È|è|É|é|Ě|ě|Ê|ê|Ë|ë|Ē|ē|Ĕ|ĕ|Ę|ę|Ė|ė/", "/ƒ|fl/", "/Ģ|ģ|Ĝ|ĝ|Ğ|ğ|Ġ|ġ/", "/Ì|ì|Í|í|Î|î|Ĩ|ĩ|Ï|ï|Ī|ī|Ĭ|ĭ|Į|į|İ|ı|IJ|ij/", "/Ĵ|ĵ/", "/Ķ|ķ|ĸ/", "/Ĺ|ĺ|Ļ|ļ|Ľ|ľ|Ŀ|ŀ|Ł|ł/", "/Ń|ń|Ņ|ņ|Ň|ň|Ñ|ñ|ʼn|Ŋ|ŋ/", "/Ò|ò|Ó|ó|Ô|ô|Õ|õ|Ö|ö|Ō|ō|Ŏ|ŏ|Ő|ő|Ǿ|ǿ|Œ|œ/", "/Ŕ|ŕ|Ŗ|ŗ|Ř|ř/", "/Ś|ś|Ş|ş|Š|š|Ŝ|ŝ|ſ|ß/", "/Ţ|ţ|Ť|ť|Ŧ|ŧ|Þ|þ/", "/Ù|ù|Ú|ú|Û|û|Ũ|ũ|Ü|ü|Ů|ů|Ū|ū|Ŭ|ŭ|Ų|ų|Ű|ű/", "/Ẁ|ẁ|Ẃ|ẃ|Ŵ|ŵ|Ẅ|ẅ/", "/Ỳ|ỳ|Ý|ý|Ŷ|ŷ|Ÿ|ÿ/", "/Ź|ź|Ž|ž|Ż|ż/");
$ReplaceWith = array("-", "", "-", "ae", "oe", "aa", "a", "c", "d", "e", "f", "g", "i", "j", "k", "l", "n", "o", "r", "s", "t", "u", "w", "y", "z");
return strtolower(preg_replace($RemoveChars, $ReplaceWith, $Raw));
}
$uniq_url = CleanFileName('!"@#$%&/{([)]=}? abcdefghijklmnopqrstuvwxyzæøå ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ ÀàÁáÂâÃãÄäĀāĂ㥹ǺǻǼǽ ĆćÇçČčĈĉĊċ ĎďĐđÐð ÈèÉéĚěÊêËëĒēĔĕĘęĖė ƒfl ĢģĜĝĞğĠġ ÌìÍíÎîĨĩÏïĪīĬĭĮįİıIJij Ĵĵ Ķķĸ ĹĺĻļĽľĿŀŁł ŃńŅņŇňÑñʼnŊŋ ÒòÓóÔôÕõÖöŌōŎŏŐőǾǿŒœ ŔŕŖŗŘř ŚśŞşŠšŜŝſß ŢţŤťŦŧÞþ ÙùÚúÛûŨũÜüŮůŪūŬŭŲųŰű ẀẁẂẃŴŵẄẅ ỲỳÝýŶŷŸÿ ŹźŽžŻż');
// Se om url matcher andre eksisterende
mysql_select_db($database_cms, $cms);
$query_rsUrl = "SELECT COUNT(*) AS url_count FROM sideindhold WHERE url REGEXP '($uniq_url)(_)([0-9]+)' OR url REGEXP '$uniq_url'";
$rsUrl = mysql_query($query_rsUrl, $cms) or die(mysql_error());
$row_rsUrl = mysql_fetch_array($rsUrl);
// Find højeste url
$query_rsUrl_highest = "SELECT * FROM sideindhold WHERE url REGEXP '($uniq_url)(_)([0-9]+)' ORDER BY url DESC LIMIT 1";
$rsUrl_highest = mysql_query($query_rsUrl_highest, $cms) or die(mysql_error());
$row_rsUrl_highest = mysql_fetch_array($rsUrl_highest);
// Hent kun nummeret på siden og læg en til
$uniq_number = trim($row_rsUrl_highest['url'], $uniq_url . "_")+1;
$var = ($row_rsUrl['url_count'] > 0) ? "INSERT INTO tabel url VALUES " . $uniq_url . "_" . $uniq_number:"INSERT INTO tabel url VALUES " . $uniq_url;
echo $var;
mysql_close($cms);
?>
Ændrer selvfølgelig så det passer ind i en form, ved at lave noget ala:
...
$insertSQL = sprintf("INSERT INTO tabel(url) VALUES (%s)",
...
for at undgå injections
Tak for hjælpen.
exp og skelboe smid et svar