PHP: Немного регурярок

LH
На сайте с 26.09.2013
Offline
89
320

<?php

function get( $path, $callback ) {
$pattern = preg_replace( '/\{(.*?)\}/', '(?P<$0>\w+)', $path );
echo '<pre>';
print_r( $pattern ); // выводит - posts/(?P<{id}>\w+)/edit, а нужно posts/(?P<id>\w+)/edit . Как это сделать?

// $0 - posts/(?P<{id}>\w+)/edit
// $1 - posts/(?P\w+)/edit - почему выводит ничего?
}

get( 'posts/{id}/edit', function( $id ) {
// echo $id;
});

RewriteEngine On

RewriteRule ^([^/]+)/? index.php?url=$1 [L,QSA]

Dim_K
На сайте с 11.07.2007
Offline
85
#1
// $1 - posts/(?P\w+)/edit - почему выводит ничего?

Все он правильно выводит, просто вы рассматриваете ответ как HTML код и


posts/(?P<id>\w+)/edit

превращается в браузере в


posts/(?P\w+)/edit

Тэг PRE только форматирование пробелами позволяет делать, а не квотит html код сам.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий