0

私はいくつかの問題に立ち往生しています

これが私のコードです

<?php
$code='$var';
$phone='$var1';
$default='0';
$html = file_get_contents('http://www.phunwa.com/phone/0191/2604122');
$name = preg_replace('/(.*)(<p><strong>Name:<\/strong> )([^<]+)(<\/p>)(.*)/mis','$3',$html);

$myVar = isset($name)?$name:$default;

$address = preg_replace('/(.*)(<p><strong>Address:<\/strong> )([^<]+)(<\/p>)(.*)/mis','$3',$html);
$location = preg_replace('/(.*)(<p><strong>Location:<\/strong> )([^<]+)(<\/p>)(.*)/mis','$3',$html);
$othernumbers = preg_replace('/(.*)(<p><strong>Other Numbers:<\/strong> )(.*)/mis','$3',$html);
list($othernumbers,$trash)= preg_split('/<\/p>/mis',$othernumbers,0);

if ($myVar ==0){echo 'Not Found'; }
else{echo 'name: '.$myVar.'<br>address: '.$address.'<br>location: '.$location.'<br>other numbers: '.$othernumbers;
}
exit;
?>

ウェブサイト Data を ftech しようとしています。電話番号が存在する場合、コードはifステートメントなしで機能しています。電話番号が存在しない場合、元の Web サイトには「NOT FOUND」と表示されます。しかし、番号が存在しない場合、私のコードは処理されません。

以下は、番号が見つからない場合にソース Web サイトに表示されるタグです。

<h1 class="second-page-title">Not found: 00191 - 2530152</h1>

デフォルト値をいくつか作ってみました。私のコードは not found condition で失敗します。上記のコードでは、番号は有効で終了し、「if」ステートメントが削除されると結果がエコーされます。乱数を与えない場合。「見つかりませんでした。これを整理するのを手伝ってください。ありがとう

新しい編集

問題は、目的の値が返されなかった場合に変数 $name を 0 として割り当てる方法を見つけることができないことです。myVAR では常に 1 になりますが。:(

すべての PHP 専門家からの返信を長い間待ちました。幸いなことにすべての $name は大文字であるため、一時的に if ( strtoupper($name)==$name) ステートメントを使用しました。これは永続的な解決策ではありませんが、現在は機能しています。

私はまだ専門家のアドバイスを待っています。

4

1 に答える 1

0

使用するif ($myVar =='0'){echo 'Not Found'; }

また、より良い構文は$myVar = (isset($name)) ? $name : $default;

于 2013-04-27T03:50:08.263 に答える