2016-05-16 153 views
0

我正在運行Wordpress網站並使用WPML轉換插件。在WPML有一個叫icl_link_to_element(2880);方法,返回和生成的DOM以下元素:在PHP中將DOM元素轉換爲字符串

<a href="https://www.someurl.com/es/atencion-al-cliente">Atención al cliente</a> 

我想這個元素轉換爲字符串,這樣我可以簡單地返回並存儲URL atencion-al-cliente的最後一部分,變成一個獨特的變量。

完成這件事的最好方法是什麼?

回覆以下評論:

現在DOM中出現兩個元素。

<a href="https://www.someurl.com/es/atencion-al-cliente">Atención al cliente</a> 

"NULL 
      " 
+0

顯示'var_ dump(icl_link_to_element(2880));' – splash58

回答

1

先做以下步驟來獲取URL

  1. $page = icl_object_id(2880, 'page', true);
  2. $url = get_permalink($page);

然後使用$parts = explode("/", $url)函數,並且得到數組的最後一個元素,你可以使用array_pop()

+0

好吧,所以當我回顯$ url時,我現在得到一個字符串值' https://www.someurl.com/es/atencion-al-cliente」。當我回顯$零件時,我得到 \t \t \t \t陣列\t \t \t。 – mdarmanin

+0

你需要print_r($ parts)not echo –

+0

太棒了!現在我看到我在php數組的第四個索引中有我需要的字符串。如何在PHP中返回這個第四個索引?對不起,我在PHP中有點noob .. – mdarmanin

0

使用preg_match得到HREF的值,現在得到使用parse_url匹配的價值,讓剛剛收集來自返回數組中的路徑之後。

現在是時候獲取url的最後部分了,所以請嘗試下面的代碼。

$html = '<a href="https://www.someurl.com/es/atencion-al-cliente">Atención al cliente</a>'; 

preg_match('/<a href="(.+)">/', $html, $match); 

$info = parse_url($match[1]); 

$str = $info['path']; 
$len = strlen($info['path']); 

echo trim(substr($str, strrpos($str, '/'), $len), "/"); //atencion-al-cliente 
+0

$ html = icl_link_to_element(2880); echo $ html; 這只是簡單地返回DOM元素。我需要將DOM元素首先轉換爲字符串 – mdarmanin

+0

,正如您所說的_'icl_link_to_element(2880);'返回並在DOM_中生成以下元素,將它們存儲在'$ html'變量中。 –

+0

不,我複製並粘貼你提供的代碼,但div仍然返回完整的DOM元素,而不是尾部斜槓後的部分。 – mdarmanin