كمك براي replace كردن

TDCO

Member
سلام.

يه متن خبري از ديتابيس خونده ميشه. ميخوام تو php ساختار لينك ها رو موقع خونده شدن تغيير بدم.

کد:
<div class="ready"><a href="view.php?id=go home">Go Home</a>You must Go Home</div><div class="ready"><a href="view.php?id=go work">Go Work</a>You must Go Work</div>

ميخوام به شكل زير در بياد:

کد:
<div class="ready"><a href="go-home">Go Home</a></div><div class="ready"><a href="go-work">Go Work</a></div>

با preg_replace بايد اين كار رو بكنم ؟

كسي ميتونه كمك كنه ؟
 

ziXet

مدیر انجمن PHP/MYSQL
سلام.

يه متن خبري از ديتابيس خونده ميشه. ميخوام تو php ساختار لينك ها رو موقع خونده شدن تغيير بدم.

کد:
<div class="ready"><a href="view.php?id=go home">Go Home</a>You must Go Home</div><div class="ready"><a href="view.php?id=go work">Go Work</a>You must Go Work</div>

ميخوام به شكل زير در بياد:

کد:
<div class="ready"><a href="go-home">Go Home</a></div><div class="ready"><a href="go-work">Go Work</a></div>

با preg_replace بايد اين كار رو بكنم ؟

كسي ميتونه كمك كنه ؟
برای اینکه از عبارات منظم و preg_replace استفاده کنی باید یه قاونی برای کاری که میکنی داشته باشی !
الان اینی که من میبینم معلوم نیست دقیقا چی رو باید با چی عوض کنه و ...
باید اول rule رو بتونی برای خودت تعریف کنی بعد اون رو به کد تبدیل کنی
 

TDCO

Member
ممنون.

اينجا بين

کد:
<div class="ready"><a href="view.php?id=

و

کد:
">

هر چيزي كه باشه , به جاي فاصله (space) از - استفاده ميشه. يعني بعد از تغيير اينجور ميشه.
 

ziXet

مدیر انجمن PHP/MYSQL
بفرما:
PHP:
$text = '<div class="ready"><a href="view.php?id=go home">Go Home</a>You must Go Home</div><div class="ready"><a href="view.php?id=go work">Go Work</a>You must Go Work</div>';    
preg_match_all('#<a\s(?:(?= [^>]* href="   (?P<href>  [^"]*) ")|)(?:(?= [^>]* title="  (?P<title> [^"]*) ")|)(?:(?= [^>]* target=" (?P<target>[^"]*) ")|)[^>]*>(?P<text>[^<]*)</a>#xi',
    $text,
    $matches,
    PREG_SET_ORDER
);
foreach ($matches as $val){
    $text = str_replace($val['href'], str_replace(" ", "-", $val['href']), $text);
}
echo $text;    //output
البته ممکن راه های ساده تری هم باشه!

موفق باشید
 

جدیدترین ارسال ها

بالا