Jump to content
  • 0

Регулярное выражение


rus
 Share

Question

15 answers to this question

Recommended Posts

  • 0
никак тока если ещё раз прогонять $str этой функцией но искать пробелы и заменять '_', либо сразу все символы(кроме перечисленных) заменять не '-' , а '_'

Можно поподробнее про первый вариант?

Второй отпадает, так как не пашет.

Я так понял пробел - это \s ?

Link to comment
Share on other sites

  • 0
Спасибо конечно, но не пашет... :)

:) быть не может, ошибку выдаёт или что ? я ; в конце забыл поставить.

Мож и прав Иван, что дело в юникоде ... попробуй без

$str = preg_replace('/[^a-z0-9_]+/', '-', str_replace(' ', '_', $str));

Edited by LunatiK
Link to comment
Share on other sites

  • 0

Вобщем вот что мы имеем, полный код:

function str2url($str) {
// переводим в транслит
$str = translited($str);
// в нижний регистр
$str = strtolower($str);
// заменям все ненужное нам на "-"
$str = preg_replace('~[^-a-z0-9_]+~u', '-', $str);
// удаляем начальные и конечные '-'
$str = trim($str, "-");
return $str;

Конечно же это я удалил, прежде чем твой способ использовать:

	$str = trim($str, "-");

Edited by rus
Link to comment
Share on other sites

  • 0
Вобщем вот что мы имеем, полный код:

function str2url($str) {
// переводим в транслит
$str = translited($str);
// в нижний регистр
$str = strtolower($str);
// заменям все ненужное нам на "-"
$str = preg_replace('~[^-a-z0-9_]+~u', '-', $str);
// удаляем начальные и конечные '-'
$str = trim($str, "-");
return $str;

Конечно же это я удалил, прежде чем твой способ использовать:

	$str = trim($str, "-");

Ну и ? моя последняя строчка рабочая, вставляй и всё

Link to comment
Share on other sites

  • 0
Вобщем вот что мы имеем, полный код:

function str2url($str) {
// переводим в транслит
$str = translited($str);
// в нижний регистр
$str = strtolower($str);
// заменям все ненужное нам на "-"
$str = preg_replace('~[^-a-z0-9_]+~u', '-', $str);
// удаляем начальные и конечные '-'
$str = trim($str, "-");
return $str;

Конечно же это я удалил, прежде чем твой способ использовать:

	$str = trim($str, "-");

С точки зрения этого когда все пробелы должны заменяться на "-" а что тебе %20 в урле не угодил?

Link to comment
Share on other sites

  • 0
С точки зрения этого когда все пробелы должны заменяться на "-" а что тебе %20 в урле не угодил?

Ну не красиво это. :)

Хотелось бы все пробелы поменять на нижнее подчеркивание.

И вот еще хотелось бы узнать, если в .htaccess прописано:

RewriteRule ^([A-Za-z]+)/?$ index.html

Опять надо как-то переделать что бы понимал bla_bla_bla с подчеркиванием. Это возможно?

Эстетика :)

ага.

Link to comment
Share on other sites

  • 0
И вот еще хотелось бы узнать, если в .htaccess прописано:

RewriteRule ^([A-Za-z]+)/?$ index.html

Опять надо как-то переделать что бы понимал bla_bla_bla с подчеркиванием. Это возможно?

RewriteRule ^([A-Za-z_]+)/?$ index.html

Link to comment
Share on other sites

  • 0

function str2url($str) {
// переводим в транслит
$str = translited($str);
// в нижний регистр
$str = strtolower($str);
[b] // заменям все ненужное нам на "-", а пробелы на "_"
$str = preg_replace('/[^a-z0-9_]+/', '-', str_replace(' ', '_', $str));
[/b]
// удаляем начальные и конечные '-' и '_'
$str = trim($str, "-_");
return $str;

голос за кадром: «Боже мой, и эти люди пишут сайты» :)

Edited by LunatiK
Link to comment
Share on other sites

  • 0
function str2url($str) {
// переводим в транслит
$str = translited($str);
// в нижний регистр
$str = strtolower($str);
[b] // заменям все ненужное нам на "-", а пробелы на "_"
$str = preg_replace('/[^a-z0-9_]+/', '-', str_replace(' ', '_', $str));
[/b]
// удаляем начальные и конечные '-' и '_'
$str = trim($str, "-_");
return $str;

голос за кадром: «Боже мой, и эти люди пишут сайты» :)

Вот клянусь! Не работает!

Мож я что не так делаю...

Ладно, спасибо за помощь! Буду ковыряться сам.

Добавил: разобрался, моя вина, просто не внимательность - типичная ошибка программистов. :)

Спасибо еще раз!

Edited by rus
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy