Как изменить часть URL в php? - PullRequest
2 голосов
/ 02 мая 2011

Я новичок в 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 ()

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

Ответы [ 3 ]

5 голосов
/ 02 мая 2011

вы можете сделать:

$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.

0 голосов
/ 02 мая 2011
$variable = 'place'; //e.g. georgetown
$url = 'http:www.bobsplace.com/events/'.$variable.'/12354544233123';

Я думаю, это то, что вы просите.

0 голосов
/ 02 мая 2011

Я думаю, вы пытаетесь сказать, что вы хотите заменить текст "Джорджтаун". Если это правильно, следующий код должен работать (убедитесь, что вы определили $ replace для того, на что хотите его заменить):

$url = str_replace('/georgetown/', '/' . $replace . '/', $url);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...