我需要获取网站的网址,但我们如何在PHP中执行此操作?
例如,有一个网址extern crate cairo;
extern crate gtk;
use cairo::Context;
use gtk::signal::Inhibit;
use gtk::signal::WidgetSignals;
use gtk::traits::ContainerTrait;
use gtk::traits::WidgetTrait;
use std::sync::{Arc,Mutex};
struct MyWidget {
widget: gtk::DrawingArea,
foo: u32,
}
impl MyWidget {
fn new() -> Arc<Mutex<MyWidget>> {
let result = Arc::new(Mutex::new(MyWidget {
widget: gtk::DrawingArea::new().unwrap(),
foo: 17
}));
let r2 = result.clone();
result.lock().unwrap().widget.connect_draw(move |_w, c| {
r2.lock().unwrap().redraw(c)
});
result
}
fn modify(&mut self, x: u32) {
self.foo += x;
self.widget.queue_draw();
}
fn redraw(&self, _ : Context) -> Inhibit {
println!("Should redraw for {}", self.foo);
Inhibit(true)
}
}
fn main() {
gtk::init().ok();
let window = gtk::Window::new(gtk::WindowType::TopLevel).unwrap();
let area = MyWidget::new();
window.add(&area.lock().unwrap().widget);
window.connect_delete_event(|_, _| {
gtk::main_quit();
Inhibit(true)
});
let a1 = area.clone();
window.connect_key_release_event(move |_w, _event| {
a1.lock().unwrap().modify(3);
Inhibit(true)
});
let a2 = area.clone();
window.connect_button_release_event(move |_w, _event| {
a2.lock().unwrap().modify(17);
Inhibit(true)
});
window.show_all();
gtk::main();
}
,网址是动态的,我需要获取网址的www.example.com/page.php?var=value
部分。该URL是其他网站,因此无法使用var=value
个变量。
我无法解析URL,因为$_SERVER[]
需要指定一个URL,我不知道parse_url()
的值是什么,我想用PHP脚本获取URL然后解析它。
我们有什么方法可以在PHP中做到这一点吗?
答案 0 :(得分:1)
parse_url
将解析URL并返回其组件。
参考:http://php.net/manual/en/function.parse-url.php
<?php
$url = 'www.example.com/page.php?var=value';
$query_string = parse_url($url, PHP_URL_QUERY );
echo $query_string;
?>
输出:
VAR =值
答案 1 :(得分:0)
使用parse_url()
和parse_str()
,您可以获取参数:
$url = "www.example.com/page.php?var=value";
$urlParts= parse_url($url); // Separates the url
parse_str($urlParts['query'], $parameters);// Get the part you actually need it and create a array
var_dump($parameters) // Your parameters
<强>更新强>
将var_dump替换为:
foreach($parameters as $key => $value) {
echo $key." = ".$value."<br />";
}