2016-05-16 3 views
0

私はWordpressサイトを実行していて、WPML翻訳プラグインを使用しています。 WPMLではDOMで次の要素を返し、生成icl_link_to_element(2880);と呼ばれる方法があります:PHPでDOM要素を文字列に変換

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

私は単にURL atencion-al-clienteの最後の部分を返し、保存できるように、文字列に、この要素を変換したいです一意の変数に変換します。

これを行うにはどのような方法が最適ですか?以下のコメントへ

回答:

2つの要素が、今DOMに表示されます。

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

"NULL 
      " 
+0

結果を表示 'var_ダンプ(icl_link_to_element(2880)); ' – splash58

答えて

1

まず、そのURLその後

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

あなたがarray_pop()を使用することができ、$parts = explode("/", $url)機能を使用し、その配列の最後の要素を取得を取得するには、次の手順を実行します。

+0

ok $ urlをエコーすると、 https://www.someurl.com/es/atencion-al-cliente '。私が$パーツをエコーすると、私は \t \t \t \t \t \t \tのようになります。 – mdarmanin

+0

あなたはprint_r($ parts)を必要としませんecho –

+0

素晴らしい!今、PHP配列の4番目のインデックスに必要な文字列があることがわかります。どのようにPHPでこの4番目のインデックスを返すのですか?申し訳ありませんが、私はPHPで少し騒ぎです。 – 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要素を再度返します。私は、あなたが '' $ html'変数にDOM_に以下の要素を返して格納すると言ったようにDOM要素を最初に – mdarmanin

+0

という文字列に変換する必要があります。 –

+0

いいえ、あなたが提供したコードをコピーして貼り付けましたが、divはまだ末尾のスラッシュの後ろにあるDOMエレメント全体を返しています。 – mdarmanin

関連する問題