2011-05-02 5 views
2

저는 PHP에 익숙하지 않아 URL 중간이 변경되는이 문제를 해결하기 위해 노력하고 있습니다.PHP에서 URL의 일부를 변경하는 방법?

이 가짜 URL을 사용하여 예를 들어

,

$url = 'http://www.bobsplace.com/events/georgetown/12354544233123'; 

나는 임의의 변수에서 "조지 타운"을 대체 할 수 있어야합니다.

그래서 이벤트 후 URL을 슬라이스하고 "georgetown"이 될 변수가 있고 URL의 나머지 부분이 계속 이어 지도록합니다. 나는 가능한 한 많은 이해를하기를 바랍니다.

좋아, 나는이 모든 것을 시도했지만 여전히 오류가 발생하지만 대부분 내 현재의 코딩 때문일 가능성이 큽니다. 나는 지금 모든 것을 입력하고있다.

<? 

// This URL only shows future events 

$url = 'https://graph.facebook.com/192674347443031/events?access_token=153420758043439|66d692f0e73ad17d939d9d9c-1045402872|8VHLfMb3gYY0p9fnT7wMS8Q9Krc&expires_in=0&since=yesterday' ; 

$event_id = get_post_custom_values('facebook_id'); 
$url = str_replace('/192674347443031/', '/' . $event_id . '/', $url); 


$json = file_get_contents($url) ; 

$data = json_decode($json,true) ; 
//var_dump($data) ; 

$sorted_array = array_reverse($data['data'], TRUE) ; 

foreach ($sorted_array as $key => $value) { 

    //print_r($value) ; 
    ?> 

<? echo "<li><a href='http://facebook.com/event.php?eid=". $value['id'] . "' target='_blank'>" ; 
             echo "<h2>" . $value['name'] . "</h2>" ; 
             echo "</a>" ; 
             echo " (" . $value['location'] .") <br />" ; 
             echo date("F j, Y, g:i a" , strtotime($value['start_time'])) . " to " . date("F j, Y, g:i a" , strtotime($value['end_time'])) ;?> 
            <div class="moreinfo">  
            <? echo "<a href='http://facebook.com/event.php?eid=". $value['id'] . " ' target='_blank'>" ; 
             echo "<b>" . 'More info' . "</b>" ; 
             echo "</a>" ;?> 
             </div> 
             <? echo "</li>"; 


} 



?> 

오류가 계속 발생하면서 array_reverse()가 배열이어야한다고 말하고 있습니다. 또한 잘못된 인수 foreach()

이제이 코드는 해당 페이지의 전체 코드는 아니지만 문제를 일으키는 코드 단편입니다.

답변

0

나는 당신이 텍스트 "조지 타운"을 대체하기를 원한다고 말하고 싶다고 생각한다.

$url = str_replace('/georgetown/', '/' . $replace . '/', $url); 
+0

주위에 슬래시를 추가하면 더 안전 해집니다. –

+1

나는 OP가 실제 단어 "조지 타운"이 아니라 마지막 두 슬래시 사이의 문자열을 바꾸는 방법을 묻고 있다고 생각한다. –

+0

@Alix URL을 감안할 때 그렇게 생각하지는 않았지만 경우에 대비하여 변경했습니다. 감사. – waiwai933

4

당신이 할 수 있습니다 :

$url = 'http//:www.bobsplace.com/events/georgetown/12354544233123'; 
$my_var = 'foobar'; 

$url = str_replace("georgetown", $my_var, $url); 

또는 :

맞습니다 경우, 다음 코드는 (당신이 대체하고 싶은 무엇을 대체 $ 정의했는지 확인) 작동합니다
$url = 'http//:www.bobsplace.com/events/georgetown/12354544233123'; 
$my_var = 'foobar'; 

$temp = explode('/' , $url); 
$temp[4] = $my_var; 
$url = implode('/' , $temp); 

첫 번째 것은 이름으로 대체되고 두 번째 URL은 URL로 대체됩니다.

0
$variable = 'place'; //e.g. georgetown 
$url = 'http:www.bobsplace.com/events/'.$variable.'/12354544233123'; 

나는 이것이 당신이 요구하는 것이라고 생각합니다.

관련 문제