私はアラビア語تفاحة
で始まり、--------------------------------------<br>
PHPを使って右から左(アラビア語)の単語とタグの部分文字列を取得する方法は?
私の現在のコードは2つの、英語の単語間の部分文字列を見つけるためによく働くが始まる言葉はアラビア語であれば失敗で終わる2つの文字列の間の部分文字列を取得しようとしています。どのように私はこの問題を解決する方法を助けることができますか?前もって感謝します。
<?
$returned_content = get_data('./input.php');
$SearchWord_Value = $_GET['SearchWord'];
/* gets the data from a URL */
function get_data($url) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
function get_string_between($string, $start, $end){
$string = ' ' . $string;
$ini = strpos($string, $start);
if ($ini == 0) return '';
$ini += strlen($start);
$len = strpos($string, $end, $ini) - $ini;
return substr($string, $ini, $len);
}
$parsed = get_string_between($returned_content, $SearchWord_Value, '--------------------------------------<br>');
echo "<br><br>Found Block:<br>".$parsed;
?>
完全な文字列の例では、2つの文字列の間のデータを取得する:
تفاحة:
<br><img src="http://asite.com/1.jpg"><br>
<a href="https://asite.com/1.html">تفاحة</a> <br />
<a href="http://asite.com/link.html">link1 </a> <br />
<a href="http://asite.com/link.html">link2 </a> <br />
<a href="http://asite.com/link.html">link3 </a> <br />
<a href="http://asite.com/link.html">link4 </a> <br />
<a href="http://asite.com/link.html">link5 </a> <br />
--------------------------------------<br>
編集: これは新しいサンプル入力です:
$str = <<<'STR'
تفاحة:
<br><img src="http://asite.com/1.jpg"><br>
<a href="https://asite.com/1.html">تفاحة</a> <br />
<a href="http://asite.com/link.html">link1 </a> <br />
<a href="http://asite.com/link.html">link2 </a> <br />
<a href="http://asite.com/link.html">link3 </a> <br />
<a href="http://asite.com/link.html">link4 </a> <br />
<a href="http://asite.com/link.html">link5 </a> <br />
--------------------------------------<br>
Mango:
<br><img src="http://asite.com/1.jpg"><br>
<a href="https://asite.com/Mango.html">Mango</a> <br />
<a href="http://asite.com/linkMango.html">link1Mango </a> <br />
<a href="http://asite.com/linkMango.html">link2Mango </a> <br />
<a href="http://asite.com/linkMango.html">link3Mango </a> <br />
<a href="http://asite.com/linkMango.html">link4Mango </a> <br />
<a href="http://asite.com/linkMango.html">link5Mango </a> <br />
--------------------------------------<br>
خوخ:
<br><img src="http://asite.com/1.jpg"><br>
<a href="https://asite.com/1.html">خوخ</a> <br />
<a href="http://asite.com/linkpeach.html">link1خوخ </a> <br />
<a href="http://asite.com/linkpeach.html">link2خوخ </a> <br />
<a href="http://asite.com/linkpeach.html">link3خوخ </a> <br />
<a href="http://asite.com/linkpeach.html">link4خوخ </a> <br />
<a href="http://asite.com/linkpeach.html">link5خوخ </a> <br />
--------------------------------------<br>
STR;
$start = 'تفاحة:';
$end = '--------------------------------------<br>';
//var_dump(get_string_between($str, $start, $end));
$parsed2 = get_string_between($str, $start, $end);
echo "found :".$parsed2;
返信ありがとうございます。私はあなたのメソッドを使用しようとしましたが、残念ながら、私が望むブロックではなく、返されたコンテンツ全体を置きました!私はそれの中でメソッドの変数を取得したい。 – user1788736
私の編集を見てください。あなたの要求に応じてより機能するようにあなたの機能をリファクタリングしました。私の答えで 'get_string_between()'関数の更新版を使ってみて、それがうまくいくかどうかを教えてください。 – Sherif
私はあなたのバージョンのget_string_betweenを使用しました。データはまったくありませんでした。$ parsed2 = get_string_between2($ returned_content、$ SearchWord_Value、 '--------------------- -----------------
'); エコー "
発見ブロック:
"。$ parsed2; – user1788736