将Java代码转换为PHP-URL连接和读取响应
我编写了以下Java程序来连接google.com,得到它的HTML源代码,在屏幕上打印整个源代码,然后计算代码中的换行次数(将Java代码转换为PHP-URL连接和读取响应,java,php,code-conversion,Java,Php,Code Conversion,我编写了以下Java程序来连接google.com,得到它的HTML源代码,在屏幕上打印整个源代码,然后计算代码中的换行次数()。它工作得很好 String QUERY = "http://www.google.com"; URL url = new URL(QUERY); URLConnection connection = url.openConnection(); connection.setDoInput(true); InputStream inStream = connect
)。它工作得很好
String QUERY = "http://www.google.com";
URL url = new URL(QUERY);
URLConnection connection = url.openConnection();
connection.setDoInput(true);
InputStream inStream = connection.getInputStream();
BufferedReader input = new BufferedReader(new InputStreamReader(inStream));
String line = "";
int count = 0;
while ((line = input.readLine()) != null)
{
System.out.println(line);
if(line.contains("br"))
{
count++;
System.out.println(count);
}
}
问题是,我想用PHP编写一个类似的代码。
我知道可以使用fopen调用URL,并使用fread将其读入字符串类型变量
我想知道如何打印它(可能是echo?)。但更重要的是,我如何在源代码中搜索所需的字符串,不仅要计算出现的次数,还要在指定搜索字符串的位置后检索字符串/字符集。这是一个有点奇怪的请求,您似乎在打印每个字符串(而不是最后)后打印数字。此外,您似乎只计算了一次与
br
相反的每一行,但这应该让您开始使用php:
<?php
$count = 0;
foreach(file("http://www.google.com") as $line) {
echo $line, PHP_EOL;
if(strpos('br', $line)) {
++$count;
echo $count, PHP_EOL;
}
}
谢谢,这确实让我开始了……虽然不算什么。当我运行这段代码时,我的浏览器会打开谷歌,而不是检索其HTML并回显“计数”。当然不是。它只是逐行打印www.Google.com的内容,如果你在浏览器中调用它(java版本似乎是在cli上调用的,所以我认为您也应该在cli上使用php版本)它解释html。如果您想在浏览器中看到纯html代码(无论出于何种原因),请围绕$line变量包装一个“htmlspecialchars”函数调用。